Fn::FindInMap enhancements - AWS CloudFormation

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 および/または SecondLevelKeyMapName マップから見つからない場合に Fn::FindInMap が解決される値。このフィールドはオプションです。

変換中に有効な値に変換できる限り、すべてのパラメータ MapNameTopLevelKeySecondLevelKeyDefaultValue は組込み関数にすることができます。

以下は、組み込み関数を使用して最上位のキーを定義する例です。

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: 拡張機能のパラメータで以下の関数を使用できます。