映射是一个Key-Value映射表。在模板的Resources和Outputs中,可以使用Fn::FindInMap内部函数,通过指定Key而获取映射表的Value。

语法

映射由Key-Value对组成。其中Key为字符串,Value可以为字符串、数字、布尔、列表或字典类型。如果声明多个映射,用英文逗号(,)分隔。每个映射的名称不能重复。

说明 映射须为纯数据,映射中不能使用函数。

示例

  • 正确的映射示例
    Mappings:
      ValidMapping:
        '1234567890':
          TestValu3: value3
        TestKey1:
          TestValu1: value1
        TestKey2:
          TestValu2: value2
        TestKey4:
          TestValu4: 1234
  • 错误的映射示例
    Mappings:
      InvalidMapping1:
        ValueList:
          - foo
          - bar
        ValueString: baz
      InvalidMapping2:
        - foo
        - bar: baz
      InvalidMapping3: foobar
  • 使用内部函数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