這是新的 AWS CloudFormation 範本參考指南。請更新您的書籤和連結。如需開始使用 CloudFormation 的說明,請參閱 AWS CloudFormation 使用者指南。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Fn::FindInMap
                enhancements
此AWS::LanguageExtensions轉換可增強 CloudFormation 範本中Fn::FindInMap內部 函數的功能。
Fn::FindInMap 函數用於從 CloudFormation 範本 Mappings區段中定義的映射擷取值。不過,標準Fn::FindInMap函數有限制,例如無法處理遺失的映射,或使用內含一些內部函數的Fn::FindInMap函數。
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的解析值。此欄位為選用欄位。 
只要能夠在轉換期間解析為有效值,MapName、TopLevelKey、SecondLevelKey、和 DefaultValue 所有參數都可以是內部函數。
範例
下列範例示範如何在新增AWS::LanguageExtensions轉換Fn::FindInMap時定義 的欄位。
使用預設值
以下是在 Fn::FindInMap函數中使用預設值的範例。
JSON
{ //... "Transform": "AWS::LanguageExtensions", //... "Fn::FindInMap": [ "RegionMap", { "Ref": "AWS::Region" }, "InstanceType", { "DefaultValue": "t3.micro" } ] //... }
YAML
Transform: 'AWS::LanguageExtensions' #... !FindInMap - 'RegionMap' - !Ref 'AWS::Region' - 'InstanceType' - DefaultValue: t3.micro #...
使用內部函數定義最上層金鑰
以下是使用 Fn::FindInMap函數搭配內嵌於其中的 Fn::Split Fn::Select和 內部函數來定義頂層金鑰的範例。
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: 增強的參數中使用以下函數:
- 
                
Fn::Split- 除非用於預設值,否則Fn::Split必須與產生字串的內部函數搭配使用,例如Fn::Join或Fn::Select。 
相關資源
如需示範如何使用 Fn::FindInMap 內部函數的詳細資訊和範例,請參閱 Fn::FindInMap。
如需 AWS::LanguageExtensions 轉換的詳細資訊,請參閱 AWS::LanguageExtensions 轉換程序。