Fn::FindInMap enhancements
AWS CloudFormation テンプレートに AWS::LanguageExtensions
変換を追加すると、組み込み関数を使用して Fn::FindInMap
のフィールドを定義できます。マッピングが見つからない場合は、新しいオプションフィールドを使用してデフォルト値を返すこともできます。
AWS::LanguageExtensions
変換の詳細については、「AWS::LanguageExtensions 変換」を参照してください。
Fn::FindInMap
組み込み関数の詳細については、「Fn::FindInMap」を参照してください。
宣言
JSON
{ "Fn::FindInMap" : [ "
MapName
", "TopLevelKey
", "SecondLevelKey
", {"DefaultValue": "DefaultValue
"} ] }
YAML
完全関数名の構文:
Fn::FindInMap:
- MapName
- TopLevelKey
- SecondLevelKey
- DefaultValue:DefaultValue
短縮形の構文:
!FindInMap
- MapName
- TopLevelKey
- SecondLevelKey
- DefaultValue:DefaultValue
パラメータ
- DefaultValue
-
TopLevelKey
および/またはSecondLevelKey
がMapName
マップから見つからない場合にFn::FindInMap
が解決される値。このフィールドはオプションです。
変換中に有効な値に変換できる限り、すべてのパラメータ MapName
、TopLevelKey
、SecondLevelKey
、DefaultValue
は組込み関数にすることができます。
例
以下は、組み込み関数を使用して最上位のキーを定義する例です。
JSON
{ //... "Transform": "AWS::LanguageExtensions", //... "Fn::FindInMap": [ "MyMap", { "Fn::Select": [ 0, { "Fn::Split": [ "|", { "Ref": "InputKeys" } ] } ] }, "SecondKey" ] //... }
YAML
Transform: 'AWS::LanguageExtensions' #... !FindInMap: [MyMap, !Select [0, !Split [|, !Ref InputKeys]], SecondKey] #...
デフォルト値の使用例を次に示します。
JSON
{ //... "Transform": "AWS::LanguageExtensions", //... "Fn::FindInMap": [ "InstanceConfiguration", { "Ref": "AWS::Region" }, "Type", { "DefaultValue": "m5.small" } ] //... }
YAML
Transform: 'AWS::LanguageExtensions' #... !FindInMap - 'InstanceConfiguration' - !Ref 'AWS::Region' - 'Type' - DefaultValue: m5.small #...
サポートされている関数
Fn::FindInMap:
拡張機能のパラメータで以下の関数を使用できます。
-
Fn::Split
- デフォルト値として使用しない限り、Fn::Split
は、Fn::Join
またはFn::Select
などの文字列を生成する組み込み関数と組み合わせて使用する必要があります。