我正在使用AWS CodePipeline(Cloudformation和CodeBuild)学习一些DevOps技术。
我的(简化的)管道是这样的:
目前,CloudFormation输出以下内容:
Outputs:
RestApiId:
Value: !Ref ApiGateway
Description: 'API Id'
问题:如何在CloudBuild中获取ApiGateway ID?
答案 0 :(得分:1)
您可以这样指定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)中,您将有一个字典,其中的键是输出名称,值是输出值。