AWS CodePipeline:在 CodeBuild 中获取 CloudFormation 输出



我正在使用AWS CodePipeline(Cloudformation和CodeBuild(学习一些DevOps技术。

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

  1. 推送到 github 存储库触发器管道
  2. CloudFormation 构建/更新后端基础架构
  3. 代码构建做一些额外的工作

目前,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

您可以像这样指定 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'

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

最新更新