amazon-web-services - 在存储库的 cloudformation 模板中使用 AWS::CodeBuild::Project 环境变量
问题描述
我想为 Lambda 函数创建一个持续交付管道。
如本文档所示,自定义环境变量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 环境变量,如果可以,实现此目的所需的符号是什么?
解决方案
CloudFormation 不能引用环境变量,不管是 SAM 还是plain。您可以做的是通过 CodeBuildbuildspec.yaml
文件 ( --parameters ParameterKey=name,ParameterValue=${MY_ENV_VAR}
) 中的 shell 将环境变量作为参数传递。
请记住将相应的参数添加到您的Parameters
部分。
如果你使用,aws cloudformation deploy
那么你应该使用--parameter-overrides
,这是一种更简单的形式:
--parameter-overrides \
YourParam=${YOUR_ENV_VAR} \
Foo=Bar \
推荐阅读
- javascript - 无法使用 Javascript 更改 SVG 路径的属性值
- machine-learning - 为什么我应该在应用机器学习算法之前减少数据的偏度?
- python - 如何计算在达到下一个值之前还剩多少行?
- c# - 如何在主窗体中等待在另一个线程中触发并完成的事件而不阻塞 UI
- local-variables - 如何在 EB GUIDE 脚本中定义局部变量
- sql-server - 获取每个员工的作用域角色
- git - 使用 web ui 擦除提交
- swift - 检测 iOS 暗模式更改
- tensorflow - TensorRT 如何处理数据?
- python - 使 Spark 结构化流中的 JSON 可以在 python (pyspark) 中作为没有 RDD 的数据帧访问