是否有可能在CloudFormation中嵌套映射,如下例所示?CloudFormation - 可能有嵌套映射?
"Mappings" :
{
"Regions" :
{
"us-east-1" :
{
"Environments" :
{
"dev" :
{
"ImageId" : "something",
"Subnet" : "something"
},
"qa" :
{
"ImageId" : "something",
"Subnet" : "something"
}
}
},
"us-west-2" :
{
"Environments" :
{
"dev" :
{
"ImageId" : "something",
"Subnet" : "something"
},
"qa" :
{
"ImageId" : "something",
"Subnet" : "something"
}
}
}
}
}
当我试图做这样的事情,我得到以下错误:
Template format error: Every Mappings attribute must be a String or a List.
如果嵌套映射是不可能的,那么什么是存储在一个CFT值的最佳方式需要两个参数来选择(例如取决于BOTH区域和环境的值)?
但是如果我想要在同一个映射下列出多个值,该怎么办?有没有办法避免为每个值单独映射?我编辑了OP进行澄清。 – jcgrowley
未验证此内容,但您可以按如下方式对它们进行设置:“us-east-1-dev”:{“imageid”:“abc”,“subnet”:“xyz”}然后使用Fn ::加入区域ref和环境ref,创建类似us-east-1-dev或us-west-2-qa的东西,这将形成Fn :: FindInMap的第一维,其中“imagedid”或“subnet”为第二维。不理想,但我不相信CF在映射中支持两个以上的维度。 – jarmod
这肯定会起作用,并且很高兴知道有一种方法可以获得任意数量的参数,但它比我所希望的更有效率。谢谢! – jcgrowley