View a markdown version of this page

Fn::FindInMap enhancements - AWS CloudFormation

這是新的 CloudFormation 範本參考指南。請更新您的書籤和連結。如需 CloudFormation 入門的說明,請參閱 AWS CloudFormation 使用者指南

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Fn::FindInMap enhancements

AWS::LanguageExtensions 轉換可增強 CloudFormation 範本中 Fn::FindInMap 內建函數的功能。

標準Fn::FindInMap函數僅支援 Fn::FindInMapRef做為巢狀內部函數。AWS::LanguageExtensions 轉換會移除此限制,讓您使用更廣泛的內部函數來定義 的參數Fn::FindInMap

注意

DefaultValue 參數Fn::FindInMap不再需要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

Parameters

透過 AWS::LanguageExtensions 轉換,參數 MapNameSecondLevelKeyTopLevelKeyDefaultValue可以各自為內部函數,只要在轉換期間解析為有效值即可。

範例

下列範例示範當您新增AWS::LanguageExtensions轉換Fn::FindInMap時,如何在 的參數中使用內部函數。

使用內建函數來定義頂層金鑰

以下是使用內嵌有 Fn::SelectFn::Split 內建函數的 Fn::FindInMap 函數來定義頂層金鑰的範例。

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

支援的函數

您可以在 的參數中使用下列函數Fn::FindInMap搭配 AWS::LanguageExtensions轉換:

相關資源

如需示範如何使用 Fn::FindInMap 內部函數的詳細資訊和範例,包括 DefaultValue 參數,請參閱 Fn::FindInMap

如需 AWS::LanguageExtensions 轉換的詳細資訊,請參閱 AWS::LanguageExtensions 轉換程序