如何生成YAML格式的CloudFormation模板 能否直接输出无需转换?
aws ecs register-task-definition --generate-cli-skeleton 既不能直接输出YAML格式,也无法直接生成符合要求的CloudFormation模板,需要手动做转换调整,具体说明如下:
- 这个命令的本质是输出AWS CLI调用ECS注册任务定义接口的JSON格式入参骨架,本身不属于CloudFormation模板结构,和CloudFormation中
AWS::ECS::TaskDefinition资源的字段规范有差异,就算转成YAML也不能直接当做CloudFormation模板使用。 - 如果你只是需要YAML格式的CLI入参骨架,直接在命令后添加
--output yaml参数即可直接输出YAML格式的入参,不需要先输出JSON再手动转换。 - 如果你需要得到可用的YAML格式CloudFormation ECS任务定义模板,可以参考两种常用处理路径:
- 先按自身需求调整生成的CLI骨架参数,再手动调整字段结构匹配CloudFormation的资源规范,最后用通用JSON转YAML工具转换格式即可
- 如果已经在AWS账号中注册过符合需求的任务定义,可以调用
aws ecs describe-task-definition查询到任务定义的完整配置,在此基础上调整字段适配CloudFormation规范后转成YAML,比从零构建的效率更高
注意:调整过程中需要重点对齐字段层级,比如任务CPU、内存的定义位置,执行角色、任务角色的ARN写法都要符合CloudFormation的语法要求,不能直接照搬CLI返回的字段结构。
内容的提问来源于stack exchange,提问作者Timothy Pulliam
相关产品推荐
相关产品推荐

