前置き
記述方法はJSON
とKumogata
のRuby DSLで表記してます。
Kumogata
は、JSONだと複雑になりがちなCloudFormationテンプレートをRuby DSLで書けるようにした、
@winebarrel@github さんによるcodenize.toolsの一つです。
Region毎に異なるAZ名を自動で解決させたい場合の記述方法になります。
各種記述方法
Region指定
cloudformation
"Ref": "AWS::Region"
kumogata
Ref "AWS::Region"
APIがコールされたRegionが自動的に入ります。
該当のRegionにおけるAZを全指定
cloudformation
"Fn::GetAZs": {
"Ref": "AWS::Region"
}
kumogata
Fn__GetAZs do
Ref "AWS::Region"
end
該当のRegionにおけるAZのうち一つだけを指定
cloudformation
"Fn::Select": [
"0",
{
"Fn::GetAZs": {
"Ref": "AWS::Region"
}
}
]
kumogata
Fn__Select [
"0",
_{
Fn__GetAZs { Ref "AWS::Region" }
}
]
上記と異なるAZを指定する時には配列のインデックスである"0"
を"1"
等に変えます。
そのRegionが有するAZ数を超えるインデックスを指定するとエラーになります。
気になる点等
-
GetAZs
が返すAZの配列の順序は保証されているのか - RegionによってAZ数が異なるが、それも自動で解決する方法はないのか