如何在CloudFormation中包含/引用多个资源文件?

问题描述

我是云形成模板的新手。我试图基于AWS服务组织模板,以便我可以轻松地对其进行管理。例如,iam角色在一个文件中,dynamodb表在另一个文件中,s3 lambda资源在单个文件中。当我尝试从这些部分创建主文件时,我只能在Fn::Transform的资源部分中包含一个部分。我需要两个建议,我朝着正确的方向前进吗?以及如何将所有部分内容都包含到我的main.yml中?

enter image description here

Resources:
  "Fn::Transform":
    Name: 'AWS::Include'
    Parameters:
      Location: 
        Fn::Sub: "s3://s3url/iam-roles.yml"
  "Fn::Transform":
    Name: 'AWS::Include'
    Parameters:
      Location: 
        Fn::Sub: "s3://s3url/ddbtables.yml"

上面的代码肯定会引发错误。如何合并这些部分?

解决方法

对于您在问题中共享的图像,必须使用AWS::CloudFormation::Stack包含您创建的模板。

Fn::Transform是一个宏,用于对cloudformation模板进行预处理。例如,我们可以使用Macros搜索并替换cloudformation模板中的某些字符串。