AWS Cloudformation“包含”转换错误

时间:2018-12-13 07:56:39

标签: amazon-web-services amazon-cloudformation

我要在主模板定义中包含一些模板和其他部分定义。示例如下(主模板)。

{
  "AWSTemplateFormatVersion": "2010-09-09",

  "Description": "",

  "Parameters": {
    "Environment": {
      "Type": "String",
      "Description": "Specify Environment: prod | dev ",
      "AllowedValues": [ "prod", "dev" ],
      "Default": "dev"
    }
  },
  
  "Transform": {
    "Name": "AWS::Include",
    "Parameters": {
      "Location": "s3://some-s3-local-bucket/part-1.json"
    }
  },

  "Resources": {
  },

  "Outputs": {
  }
}

下面是要包含在主模板中的零件的定义

{
  "AWSTemplateFormatVersion": "2010-09-09",

  "Description": "",

  "Resources": {
    "hellobucket": {
        "Type": "AWS::S3::Bucket",
        "Properties": {
          "BucketName": { "Fn::Sub": "testbucket-${Environment}" }
        }
    }
  },

  "Outputs": {
  }
}

当我尝试基于此类定义创建堆栈时,收到奇怪的错误,例如“ 通过transform修改的模板参数”。我不知道/没有任何理由将任何参数视为“已修改”。

我不想创建许多“嵌套”堆栈,因为我可以创建的堆栈数量限制了aws,因此目标是将堆栈定义拆分为许多(易于管理的)较小文件并基于它们用所有相关资源创建一个堆栈。

如何将较大的堆栈定义正确分解为较小的文件?

1 个答案:

答案 0 :(得分:1)

我之前没有做过,但这可能是因为您正在使用转换来拉入创建s3存储桶的模板,但是要拉入原始模板的模板具有所有参数字段,等等。为空。我认为这与错误消息(通过transform修改的模板参数)有关。尝试从S3模板中删除空参数条目,以查看是否有帮助。