我在 AWS 中有一个带有 Codestar、CodeBuild、CloudFormation 等的管道。
我试图弄清楚如何从返回到 CodeBuild 步骤的 CloudFormation 步骤获取信息。让我分解一下:
我有一个
buildspec.yml
用于 CodeBuild# buildspec.yml ... phases: ... build: commands: - aws cloudformation package --region $REGION --template template.yml --s3-bucket $S3_BUCKET --output-template $OUTPUT_TEMPLATE
以上使用我们的启动 CloudFormation 构建
template.yml
# template.yml ... S3BucketAssets: Type: AWS::S3::Bucket ...
此时,它会为 S3 存储桶创建一个唯一名称。惊人的。现在,
buildspec.yml
对于 CodeBuild 中的第 2 步,我想将项目推送到刚刚在 CloudFormation 模板中创建的 S3 存储桶。但是,我不知道如何从 CloudFormation 模板中获取 S3 存储桶的动态创建名称。我想要类似的东西:# buildspec.yml ... phases: ... build: commands: # this is the same step as shown above - aws cloudformation package --region $REGION --template template.yml --s3-bucket $S3_BUCKET --output-template $OUTPUT_TEMPLATE # this is the new step - aws s3 sync dist_files/ s3://{NAME_OF_THE_NEW_S3_BUCKET}
如何完成获取动态命名的 S3 存储桶以便推送到它?
我知道在 CloudFormation 模板中,您可以使用类似!GetAtt [ClientWebAssets, WebsiteURL]
. 但是,我不知道如何从 cloudformation 模板中获取该信息并返回到 codebuild 模板中。