Amazon web services 在存储库的cloudformation模板中使用AWS::CodeBuild::Project环境变量
我想为Lambda函数创建一个连续的传递管道 如图所示,的自定义环境变量可以在Amazon web services 在存储库的cloudformation模板中使用AWS::CodeBuild::Project环境变量,amazon-web-services,amazon-cloudformation,aws-codebuild,aws-sam,Amazon Web Services,Amazon Cloudformation,Aws Codebuild,Aws Sam,我想为Lambda函数创建一个连续的传递管道 如图所示,的自定义环境变量可以在buildspec.yaml中使用,如: aws cloudformation package --template-file template.yaml --s3-bucket $MYEVVARKEY --output-template-file outputtemplate.yaml 还希望在存储库的模板中使用这些CodeBuild项目环境变量。如下图所示,我尝试使用美元符号,但它没有将其作为键,而是作为文本:
buildspec.yaml
中使用,如:
aws cloudformation package --template-file template.yaml --s3-bucket $MYEVVARKEY --output-template-file outputtemplate.yaml
还希望在存储库的模板中使用这些CodeBuild项目环境变量。如下图所示,我尝试使用美元符号,但它没有将其作为键,而是作为文本:
# 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项目环境变量,如果可以,那么实现这一点所需的符号是什么?CloudFormation不能引用环境变量,与SAM或平原无关。您可以做的是通过CodeBuild
buildspec.yaml
文件中的shell将环境变量作为参数传递(--parameters ParameterKey=name,ParameterValue=${MY\u ENV\u VAR}
)
请记住将相应的参数添加到参数
部分
如果使用aws cloudformation deploy
,则应使用--参数覆盖
,这是一种更简单的形式:
--parameter-overrides \
YourParam=${YOUR_ENV_VAR} \
Foo=Bar \
CloudFormation不能引用环境变量,不管是SAM还是plain。您可以做的是通过CodeBuild
buildspec.yaml
文件中的shell将环境变量作为参数传递(--parameters ParameterKey=name,ParameterValue=${MY\u ENV\u VAR}
)
请记住将相应的参数添加到参数
部分
如果使用aws cloudformation deploy
,则应使用--参数覆盖
,这是一种更简单的形式:
--parameter-overrides \
YourParam=${YOUR_ENV_VAR} \
Foo=Bar \
谢谢,但是你能告诉我在哪里可以使用这个
参数标志吗?对于aws cloudformation软件包
,请勿将其作为选项。软件包
仅处理模板并解析部署软件包引用。之后,您需要调用deploy
,它实际执行模板,这是传递参数的时刻。我编辑了答案以包含SAM参数。是的,我使用了cloudformation deploy
,附录似乎是我想要感谢的,但是您能告诉我在哪里可以使用这个参数
标志吗?对于aws cloudformation软件包
,请勿将其作为选项。软件包
仅处理模板并解析部署软件包引用。之后,您需要调用deploy
,它实际执行模板,这是传递参数的时刻。我编辑了答案以包含SAM参数。是的,我使用了cloudformation deploy
,附录似乎就是我想要的