【发布时间】:2018-05-03 17:51:06
【问题描述】:
在我的 cloudformation 模板中,我有 78 个参数。这就是我收到错误的原因,因为我们的参数不能超过 60 个。
我想将我的一些参数合并到地图中。有人做过吗?我没有得到一个正确的例子来说明如何在地图中拥有参数然后在 CF 模板中使用它们。
请指导我。
【问题讨论】:
标签: amazon-web-services amazon-cloudformation
在我的 cloudformation 模板中,我有 78 个参数。这就是我收到错误的原因,因为我们的参数不能超过 60 个。
我想将我的一些参数合并到地图中。有人做过吗?我没有得到一个正确的例子来说明如何在地图中拥有参数然后在 CF 模板中使用它们。
请指导我。
【问题讨论】:
标签: amazon-web-services amazon-cloudformation
我认为您不能使用Map 作为参数类型。但是您可以改用CommaDelimitedList 吗?
78 个参数似乎很多,你不能使用任何Mappings/Conditions 部分来为你缓解事情吗?
或者也许将您的堆栈拆分为多个较小的专用堆栈,使用 output export/import 相互引用可能是一个很好的解决方案?
【讨论】:
地图是这样定义的:
"RegionMap" : {
"us-east-1" : { "32" : "ami-6411e20d", "64" : "ami-7a11e213" },
"us-west-1" : { "32" : "ami-c9c7978c", "64" : "ami-cfc7978a" },
"eu-west-1" : { "32" : "ami-37c2f643", "64" : "ami-31c2f645" },
"ap-southeast-1" : { "32" : "ami-66f28c34", "64" : "ami-60f28c32" },
"ap-northeast-1" : { "32" : "ami-9c03a89d", "64" : "ami-a003a8a1" }
}
然后你可以像这样访问它们:
"Resources" : {
"myEC2Instance" : {
"Type" : "AWS::EC2::Instance",
"Properties" : {
"ImageId" : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "32"]},
"InstanceType" : "m1.small"
}
}
}
【讨论】: