是否有可能在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