這是新的 CloudFormation 範本參考指南。請更新您的書籤和連結。如需 CloudFormation 入門的說明,請參閱 AWS CloudFormation 使用者指南。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Fn::FindInMap enhancements
AWS::LanguageExtensions 轉換可增強 CloudFormation 範本中 Fn::FindInMap 內建函數的功能。
標準Fn::FindInMap函數僅支援 Fn::FindInMap和 Ref做為巢狀內部函數。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 轉換,參數 MapName、SecondLevelKey、 TopLevelKey和 DefaultValue可以各自為內部函數,只要在轉換期間解析為有效值即可。
範例
下列範例示範當您新增AWS::LanguageExtensions轉換Fn::FindInMap時,如何在 的參數中使用內部函數。
使用內建函數來定義頂層金鑰
以下是使用內嵌有 Fn::Select 和 Fn::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::Split– 除非用於預設值,否則Fn::Split必須與產生字串的內部函數搭配使用,例如Fn::Join或Fn::Select。
相關資源
如需示範如何使用 Fn::FindInMap 內部函數的詳細資訊和範例,包括 DefaultValue 參數,請參閱 Fn::FindInMap。
如需 AWS::LanguageExtensions 轉換的詳細資訊,請參閱 AWS::LanguageExtensions 轉換程序。