View a markdown version of this page

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

这是新的《Amazon CloudFormation 模板参考指南》。请更新您的书签和链接。有关开始使用 CloudFormation 的帮助,请参阅《Amazon CloudFormation 用户指南》https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/Welcome.html

Fn::FindInMap enhancements

AWS::LanguageExtensions 转换增强了 CloudFormation 模板中 Fn::FindInMap 内置函数的功能。

标准 Fn::FindInMap 函数仅支持作为嵌套内置函数的 Fn::FindInMapRefAWS::LanguageExtensions 转换可移除此限制,让您可使用更广泛的内置函数来定义 Fn::FindInMap 的参数。

注意

Fn::FindInMapDefaultValue 参数不再需要 AWS::LanguageExtensions 转换。您可在任何 CloudFormation 模板中使用 DefaultValue。有关更多信息,请参阅 Fn::FindInMap

声明

JSON

{ "Fn::FindInMap" : [ "MapName", "TopLevelKey", "SecondLevelKey"] }

如果需要为映射中找不到键时指定一个回退值,请包含一个 DefaultValue

{ "Fn::FindInMap" : [ "MapName", "TopLevelKey", "SecondLevelKey", {"DefaultValue": "DefaultValue"}] }

YAML

完整函数名称的语法:

Fn::FindInMap: [ MapName, TopLevelKey, SecondLevelKey ]

短格式的语法:

!FindInMap [ MapName, TopLevelKey, SecondLevelKey ]

如果需要为映射中找不到键时指定一个回退值,请包含一个 DefaultValue

完整函数名称的语法:

Fn::FindInMap: - MapName - TopLevelKey - SecondLevelKey - DefaultValue: DefaultValue

短格式的语法:

!FindInMap - MapName - TopLevelKey - SecondLevelKey - DefaultValue: DefaultValue

参数

借助 AWS::LanguageExtensions 转换,参数 MapNameTopLevelKeySecondLevelKeyDefaultValue 都可单独成为内置函数,只要其能够在转换期间解析为有效值。

示例

以下示例演示了如何在添加 Fn::FindInMap 转换时在 AWS::LanguageExtensions 的参数中使用内置函数。

使用内置函数定义顶层键

以下示例使用 Fn::FindInMap 函数以及其中嵌入的 Fn::SelectFn::Split 内置函数定义顶层键。

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] #...

支持的函数

您可以在借助 AWS::LanguageExtensions 转换在 Fn::FindInMap 的参数中使用以下函数:

相关资源

有关如何使用 Fn::FindInMap 内置函数的更多信息和示例(包含 DefaultValue 参数),请参阅 Fn::FindInMap

有关 AWS::LanguageExtensions 转换的更多信息,请参阅 AWS::LanguageExtensions 转换