如何从已有的AWS服务实例中提取对应的CloudFormation模板
现有AWS资源导出为CloudFormation模板的实现方法
完全可以实现你的需求,以下是两种官方原生的可行方案:
方法1:CloudFormation控制台资源导入导出
- 进入CloudFormation控制台,选择「创建堆栈」→「使用现有资源(导入资源)」
- 按照页面向导选中你已经手动创建的DynamoDB表、Lambda函数等目标资源,系统会自动识别资源的合法ARN等标识完成关联,整个导入过程不会修改现有资源的任何配置
- 资源成功导入堆栈后,进入堆栈详情页的「模板」标签,即可直接下载JSON或YAML格式的完整CloudFormation模板
方法2:AWS CLI命令行生成模板
- 本地配置好AWS CLI凭证后,可以直接调用
aws cloudformation generate-template命令批量导出指定资源的模板,示例命令如下:
# 示例:导出指定Lambda函数、DynamoDB表的模板 aws cloudformation generate-template \ --resource-type "AWS::Lambda::Function" "AWS::DynamoDB::Table" \ --resource-arns "arn:aws:lambda:目标区域:你的账号ID:function:函数名" "arn:aws:dynamodb:目标区域:你的账号ID:table:表名"
- 命令返回的结果可以直接导出为
.yaml或.json格式的模板文件使用
模板使用注意事项
- 导出的模板默认会包含当前区域、账号的硬编码值,用于跨区域部署前需要将这些硬编码值替换为CloudFormation内置伪参数(比如
AWS::Region、AWS::AccountId)或者自定义参数 - 导出后建议先在测试环境尝试部署验证,确认Lambda执行角色权限、DynamoDB流配置、触发器等关联资源配置没有遗漏,再用于生产环境的跨区域复制或重建操作
内容的提问来源于stack exchange,提问作者Daveo
相关产品推荐
相关产品推荐

