amazon-web-services - 将 AWS CodePipeline 变量传递给操作
问题描述
我正在尝试将 CodePipeline 变量 #{codepipeline PipelineExecutionId} 传递给 codeBuild 操作和部署操作。
我了解此变量可随时用于所有操作,如AWS 文档中所述。
但是,我在语法上遇到了困难,因为参数没有传递到操作中。
我一直在使用以下代码:
对于构建操作:
- Name: "Build-Docker-Container"
Actions:
- Name: "Build-Docker-Container"
ActionTypeId:
Category: Build
Owner: AWS
Provider: CodeBuild
Version: "1"
Configuration:
ProjectName: !Sub ${ProjectName}-build-${BranchName}
EnvironmentVariables:
- Name: IMAGE_TAG
Type: PLAINTEXT
Value: "#{codepipeline.PipelineExecutionId}"
InputArtifacts:
- Name: !Ref ProjectName
RunOrder: 3
对于部署操作:
- Name: "Deploy-Services"
Actions:
- Name: "Deploy-Services"
ActionTypeId:
Category: Deploy
Owner: AWS
Provider: CloudFormation
Version: "1"
Configuration:
ActionMode: CREATE_UPDATE
StackName: !Sub "${ProjectName}-services-${BranchName}"
TemplatePath: !Sub "${ProjectName}::aws/03-services.yml"
Capabilities: "CAPABILITY_NAMED_IAM"
RoleArn: !GetAtt DeployRole.Arn
ParameterOverrides: !Sub |
{
"ProjectName": "${ProjectName}",
"ExecutionId": "#{codepipeline.PipelineExecutionId}"
}
InputArtifacts:
- Name: !Ref ProjectName
- Name: InfrastructureOutput
RunOrder: 4
更新代码实际上很好;我只需要更新 CloudFormation 管道堆栈即可应用它(我认为 github webhook 会触发此操作,但它只会更新管道内的操作)
解决方案
推荐阅读
- plot - Octave 3D 绘图着色
- python - 用于匹配 Python 中包含撇号的确切单词的正则表达式?
- templates - 无法在 Ansible jinja2 模板中检查大于条件的变量
- java - 当我将操作系统切换到 Mac 时,我的代码不起作用
- oracle-nosql - 无法在 localhost 上启动 Oracle NoSQL 数据库
- c++ - cpp排序函数的行为是什么,通过对向量使用默认重载的更大函数
> - macos-catalina - 重建后可能搞砸了安全性。标记为恶意软件的自动化操作
- oracle - ORA-12570: 网络会话: 意外的数据包读取错误
- python - Python - 计算列表中字符串的频率
- windows - 按年份列出音乐文件