在存储库的cloudformation模板中使用AWS :: CodeBuild :: Project Environment变量

问题描述 投票:0回答:1

我想为Lambda函数创建一个连续的传递管道。

如此docs所示,AWS::CodeBuild::Project的自定义环境变量可以在buildspec.yaml中使用,如:

aws cloudformation package --template-file template.yaml --s3-bucket $MYEVVARKEY --output-template-file outputtemplate.yaml

想在存储库的SAM模板中使用那些CodeBuild Project环境变量。如下图所示,我尝试使用美元符号,但它没有将其作为键,而是作为文本,因为它是:

# template.yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
  TimeFunction:
    Type: AWS::Serverless::Function
    Properties:
      FunctionName: $MY_FN_NAME_ENV_VAR
      Role: $MY_ROLE_ARN_ENV_VAR
      Handler: index.handler
      Runtime: nodejs8.10
      CodeUri: ./

那么,是否有可能在SAM模板中使用CodeBuild Project环境变量,如果是这样,那么实现这一点需要的符号是什么?

amazon-web-services amazon-cloudformation aws-codebuild aws-sam
1个回答
1
投票

CloudFormation不能引用环境变量,无论SAM还是普通。你可以做的是在CodeBuild buildspec.yaml文件(--parameters ParameterKey=name,ParameterValue=${MY_ENV_VAR})中通过shell传递环境变量作为参数。

请记住在Parameters部分添加相应的参数。

如果你使用aws cloudformation deploy然后你应该使用--parameter-overrides,这是一个更简单的形式:

--parameter-overrides \
    YourParam=${YOUR_ENV_VAR} \
    Foo=Bar \
© www.soinside.com 2019 - 2024. All rights reserved.