前置き
記述方法は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数が異なるが、それも自動で解決する方法はないのか