映射是一个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值。