gpt4 book ai didi

amazon-web-services - 将 AWS CodePipeline 变量传递给操作

转载 作者:行者123 更新时间:2023-12-04 04:07:47 26 4
gpt4 key购买 nike

我尝试将 CodePipeline 变量 #{codepipeline PipelineExecutionId} 传递给 codeBuild 操作,然后传递给部署操作。

我了解此变量可随时用于所有操作,如 AWS docs 中所述。 .

但是,我在语法上遇到了困难,因为参数没有传递到操作中。

我一直在使用以下代码:

对于构建操作:

        - 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 会触发此操作,但它只更新管道内的操作)

最佳答案

我可以确认您在部署操作中使用的语法正确:

                ParameterOverrides: !Sub |
{
"ProjectName": "${ProjectName}",
"ExecutionId": "#{codepipeline.PipelineExecutionId}"
}

我在我的 Pipeline 上与 CloudFormation 提供商进行了验证。我还可以确认这按预期工作

如果您编辑有问题的 CFN 操作,您可以在控制台中检查参数设置是否正确:

enter image description here

目前我无法验证构建操作,但从外观来看,它似乎也很好。

关于amazon-web-services - 将 AWS CodePipeline 变量传递给操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62237464/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com