映射是一個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值。
文檔內容是否對您有幫助?