Fn::FindInMap
enhancements
在 Fn::FindInMap 模板中添加 Amazon CloudFormation 转换时,您可以使用内部函数定义 AWS::LanguageExtensions 的字段。如果找不到映射,也可以使用新的可选字段返回默认值。
有关 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
注意
参数
所有参数 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::FindInMap -
Fn::Join -
Fn::Sub -
Fn::If -
Fn::Select -
Fn::Length -
Fn::ToJsonString -
Fn::Split– 除非将其用作默认值,否则Fn::Split必须与生成字符串(例如Fn::Join或Fn::Select)的内部函数结合使用。 -
Ref