我正在使用 AWS CodePipeline(Cloudformation 和 CodeBuild)学习一些开发运营技术。
我的(简化的)管道是这样的:
- 推送到 github 存储库会触发管道
- CloudFormation 构建/更新后端基础设施
- 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(使用前将#替换为@)