AWS CodePipeline:在 CodeBuild 中获取 CloudFormation 输出
AWS CodePipeline: Get CloudFormation outputs in CodeBuild
我正在使用 AWS CodePipeline(Cloudformation 和 CodeBuild)学习一些 DevOps 技术。
我的(简化的)管道是这样的:
- 推送到 github 回购触发管道
- CloudFormationbuilds/updates 后端基础设施
- CodeBuild 做了一些额外的工作
此时,CloudFormation 输出以下内容:
Outputs:
RestApiId:
Value: !Ref ApiGateway
Description: 'API Id'
问题:如何获取CloudBuild中的ApiGateway ID?
您可以像这样指定 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) 中,您将有一个字典,其中键是输出名称,值是输出值。
我正在使用 AWS CodePipeline(Cloudformation 和 CodeBuild)学习一些 DevOps 技术。
我的(简化的)管道是这样的:
- 推送到 github 回购触发管道
- CloudFormationbuilds/updates 后端基础设施
- CodeBuild 做了一些额外的工作
此时,CloudFormation 输出以下内容:
Outputs:
RestApiId:
Value: !Ref ApiGateway
Description: 'API Id'
问题:如何获取CloudBuild中的ApiGateway ID?
您可以像这样指定 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) 中,您将有一个字典,其中键是输出名称,值是输出值。