云形成嵌套堆栈使用 TemplateURL 进行版本控制模板的最佳方式
Cloud formation Nested Stacks best way to version control templates using TemplateURL
我们正在创建一个要部署在多个环境(dev、qa、stg、prd)中的微服务项目,我们计划使用嵌套堆栈的云形成模板来实现多个服务之间的共享资源。
问题是,当使用嵌套堆栈时,您需要指定嵌套资源的模板 URL,这是一个静态 URL,指向每次更新模板时都会更改的 S3 存储桶(上传一个有一些变化的新模板)。
所以问题是,使用像 GIT 这样的版本控制工具来跟踪嵌套模板中所做的更改的最佳方法是什么,一旦它上传到 S3 就会给你一个新的URL?
AWS 命令行界面中的 cloudformation package
命令会将本地工件(包括 AWS::CloudFormation::Stack
资源的 TemplateURL
属性 上传到 S3 存储桶,并且输出一个引用上传工件的转换后的 CloudFormation 模板。
使用此命令,跟踪更改的最佳方法是将基本模板和嵌套堆栈模板都提交到 Git,然后使用 cloudformation package
作为部署中的中间处理步骤脚本,例如 cloudformation deploy
:
S3_BUCKET=my_s3_bucket
TEMPLATE=base_template.yml
OUTPUT_TEMPLATE=$(mktemp)
aws cloudformation package \
--template-file $TEMPLATE \
--s3-bucket $S3_BUCKET \
--output-template-file $OUTPUT_TEMPLATE
aws cloudformation deploy \
--template-file $OUTPUT_TEMPLATE \
--stack-name $STACK
我们正在创建一个要部署在多个环境(dev、qa、stg、prd)中的微服务项目,我们计划使用嵌套堆栈的云形成模板来实现多个服务之间的共享资源。 问题是,当使用嵌套堆栈时,您需要指定嵌套资源的模板 URL,这是一个静态 URL,指向每次更新模板时都会更改的 S3 存储桶(上传一个有一些变化的新模板)。
所以问题是,使用像 GIT 这样的版本控制工具来跟踪嵌套模板中所做的更改的最佳方法是什么,一旦它上传到 S3 就会给你一个新的URL?
AWS 命令行界面中的 cloudformation package
命令会将本地工件(包括 AWS::CloudFormation::Stack
资源的 TemplateURL
属性 上传到 S3 存储桶,并且输出一个引用上传工件的转换后的 CloudFormation 模板。
使用此命令,跟踪更改的最佳方法是将基本模板和嵌套堆栈模板都提交到 Git,然后使用 cloudformation package
作为部署中的中间处理步骤脚本,例如 cloudformation deploy
:
S3_BUCKET=my_s3_bucket
TEMPLATE=base_template.yml
OUTPUT_TEMPLATE=$(mktemp)
aws cloudformation package \
--template-file $TEMPLATE \
--s3-bucket $S3_BUCKET \
--output-template-file $OUTPUT_TEMPLATE
aws cloudformation deploy \
--template-file $OUTPUT_TEMPLATE \
--stack-name $STACK