映射是一個Key-Value映射表。在模板的Resources和Outputs中,您可以調用Fn::FindInMap內建函式擷取Mappings中雙層映射的值,通過指定Key而擷取映射表的Value。
文法
映射由Key-Value對組成。其中Key為字串,Value可以為字串、數字、布爾、列表或字典類型。如果您使用JSON語言聲明多個映射,用英文逗號(,)分隔。每個映射的名稱不能重複。
說明
映射須為純資料,映射中不能使用函數。
不推薦您在Mappings中定義單層Map,因為在模板中無法擷取Mappings中單層Map的值。
Mappings:
ValidMap:
'1234567890':
TestValu3: value3
TestKey1:
TestValu1: value1
TestKey2:
TestValu2: value2
TestKey4:
TestValu4: 1234
樣本
使用內建函式Fn::FindInMap返回對應的值樣本。
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
regionParam:
Description: 選擇建立ECS的地區
Type: String
AllowedValues:
- hangzhou
- beijing
Mappings:
RegionMap:
hangzhou:
'32': m-25l0rcfjo
'64': m-25l0rcfj1
beijing:
'32': m-25l0rcfj2
'64': m-25l0rcfj3
Resources:
WebServer:
Type: ALIYUN::ECS::Instance
Properties:
ImageId:
Fn::FindInMap:
- RegionMap
- Ref: regionParam
- '32'
InstanceType: ecs.t1.small
SecurityGroupId: sg-25zwc****
ZoneId: cn-beijing-b
Tags:
- Key: Department1
Value: HumanResource
- Key: Department2
Value: Finance
常見問題
您無法擷取Mappings中定義的單層Map值,關於如何擷取Mappings中定義的Map值,請參見如何查看模板中的Map值。