Fn::FindInMap enhancements - Amazon CloudFormation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

参数

DefaultValue

如果在 MapName 映射上找不到 TopLevelKey 和/或 SecondLevelKey,则 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: 增强参数中使用以下函数: