如何用本地文件实现AWS::Include宏的Fn::Transform功能?
用本地文件替代AWS::Include的可行方案
使用AWS CLI的
aws cloudformation package命令
这个命令能自动将本地文件上传到指定S3桶,并替换模板中的本地路径为S3地址,完美适配AWS::Include的使用逻辑。执行命令示例:aws cloudformation package --template-file your-template.yml --s3-bucket your-target-bucket --output-template-file packaged-template.yml执行后生成的
packaged-template.yml会把本地的openapi.yml上传到你指定的S3桶,并更新模板里的Location参数为对应的S3路径,之后直接用这个打包后的模板部署即可。使用本地预处理工具
第三方工具(如cfn-include)可以在本地完成文件嵌入操作,无需依赖S3。部署前先用工具处理模板:cfn-include your-original-template.yml > processed-template.yml处理后的模板会直接把本地
openapi.yml的内容嵌入到DefinitionBody位置,替换原来的Fn::Transform块,之后直接部署处理后的模板即可。手动嵌入文件内容
如果你的openapi.yml内容不大,可以直接将文件内容复制粘贴到模板的DefinitionBody字段中,替换掉原来的Fn::Transform配置。这种方式无需额外工具,适合小型配置文件,但后续维护需要同步修改模板里的内容。
内容的提问来源于stack exchange,提问作者Stefan
相关产品推荐
相关产品推荐

