AWS CodePipeline:在 CodeBuild 中获取 CloudFormation 输出

2023-12-28

我正在使用 AWS CodePipeline(Cloudformation 和 CodeBuild)学习一些开发运营技术。

我的(简化的)管道是这样的:

  1. 推送到 github 存储库会触发管道
  2. CloudFormation 构建/更新后端基础设施
  3. CodeBuild 做了一些额外的工作

目前,CloudFormation 输出以下内容:

Outputs:
  RestApiId:
    Value: !Ref ApiGateway
    Description: 'API Id'

问题:如何在 CloudBuild 中获取 ApiGateway ID?


根据:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html

您可以像这样指定 CodePipeline 步骤(来自文档):

- Name: CreateTestStackA
  Actions:
    - Name: CloudFormationCreate
      ActionTypeId:
        Category: Deploy
        Owner: AWS
        Provider: CloudFormation
        Version: '1'
      Configuration:
        ActionMode: CREATE_UPDATE
        Capabilities: CAPABILITY_IAM
        OutputFileName: TestOutput.json
        RoleArn: !GetAtt [CFNRole, Arn]
        StackName: StackA
        TemplateConfiguration: TemplateSource::test-configuration.json
        TemplatePath: TemplateSource::teststackA.yaml
      InputArtifacts:
        - Name: TemplateSourceA
      OutputArtifacts:
        - Name: StackAOutput
      RunOrder: '1'

So in Configuration你需要添加OutputFileName参数并指定输出工件名称。然后您可以使用该工件作为 CodeBuild 的输入。在输出文件(TestOutput.json)中,您将有一个字典,其中键是输出名称,值是输出值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS CodePipeline:在 CodeBuild 中获取 CloudFormation 输出 的相关文章