我要在主模板定义中包含一些模板和其他部分定义。示例如下(主模板)。
{
"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,因此目标是将堆栈定义拆分为许多(易于管理的)较小文件并基于它们用所有相关资源创建一个堆栈。
如何将较大的堆栈定义正确分解为较小的文件?
答案 0 :(得分:1)
我之前没有做过,但这可能是因为您正在使用转换来拉入创建s3存储桶的模板,但是要拉入原始模板的模板具有所有参数字段,等等。为空。我认为这与错误消息(通过transform修改的模板参数)有关。尝试从S3模板中删除空参数条目,以查看是否有帮助。