映射(Mappings)

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