Mappings セクションは、キーと値のマッピングテーブルです。 リソースまたは出力の定義で Mappings を使用する場合は、Fn::FindInMap を使用して、キーを対応する名前付きの値のセットに一致させます。

構文

Mappings は、キーと値の両方が文字列または数値となる、キーと値の 1 つ以上のペアで構成されます。 マッピングが複数ある場合はコンマ (,) で区切ります。 マッピング名は一意である必要があります。

マッピングは純粋なデータとなっている必要があります。関数を含めることはできません。

  • 以下の例は、正しい Mappings の定義を示しています。
    "Mappings": {
        "ValidMapping": {
            "TestKey1": {"TestValu1": "value1"},
            "TestKey2": {"TestValu2": "value2"},
            1234567890: {"TestValu3": "value3"},
            "TestKey4": {"TestValu4": 1234}
        }
    }          
  • 以下の例は、誤った Mappings の定義を示しています。
    "Mappings": {
        "InvalidMapping1": {
            "ValueList": ["foo", "bar"],
              "ValueString": "baz"
        },
        "InvalidMapping2": ["foo", {"bar" : "baz"}],
        "InvalidMapping3": "foobar"
    }           
  • 以下の例は、Fn::FindInMap を使って戻り値を探す方法を示しています。
    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
        "regionParam": {
          "Description": "The region where the ECS instance is created",
          "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"
              }
            ]
          }
        }
      }
    }