全部產品
Search
文件中心

Resource Orchestration Service:映射(Mappings)

更新時間:Jun 19, 2024

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