Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mappings
Bagian Mappings
opsional cocok dengan kunci untuk satu set nilai yang sesuai. Misalnya, jika Anda ingin menetapkan nilai berdasarkan region, Anda dapat membuat pemetaan yang menggunakan nama region sebagai kunci dan berisi nilai-nilai yang ingin Anda tentukan untuk setiap region tertentu. Anda menggunakan fungsi intrinsik Fn::FindInMap
untuk mengambil nilai-nilai dalam peta.
Anda tidak dapat menyertakan parameter, parameter semu, atau fungsi intrinsik dalam bagian Mappings
.
Sintaks
Bagian Mappings
terdiri dari nama kunci Mappings
. Kunci dalam pemetaan harus berupa string literal. Nilainya bisa String
atau List
tipe. Contoh berikut ini menunjukkan bagian Mappings
yang berisi pemetaan tunggal bernama Mapping01
(nama logis).
Dalam pemetaan, setiap peta adalah kunci yang diikuti oleh pemetaan lain. Kunci harus berupa peta pasangan nama-nilai dan unik dalam pemetaan.
JSON
"Mappings" : { "Mapping01" : { "Key01" : { "Name" : "Value01" }, "Key02" : { "Name" : "Value02" }, "Key03" : { "Name" : "Value03" } } }
YAML
Mappings: Mapping01: Key01: Name: Value01 Key02: Name: Value02 Key03: Name: Value03
Contoh
Pemetaan Basic
Contoh berikut ini menunjukkan bagian Mappings
dengan peta RegionMap
, yang berisi lima kunci yang memetakan ke pasangan nama-nilai yang mengandung nilai-nilai string tunggal. Kunci adalah nama region. Setiap pasangan nama-nilai adalah tipe instance dari keluarga T yang tersedia di wilayah yang diwakili oleh kunci.
Pasangan nama-nilai memiliki nama (InstanceType
dalam contoh) dan nilai. Dengan menamakan nilai-nilai, Anda dapat memetakan lebih dari satu set nilai ke kunci.
JSON
"Mappings" : { "RegionMap" : { "us-east-1" : {"InstanceType": "t2.micro"}, "us-west-1" : {"InstanceType": "t2.micro"}, "eu-west-1" : {"InstanceType": "t2.micro"}, "eu-north-1" : {"InstanceType": "t3.micro"}, "me-south-1" : {"InstanceType": "t3.micro"} } }
YAML
Mappings: RegionMap: us-east-1: InstanceType: t2.micro us-west-1: InstanceType: t2.micro eu-west-1: InstanceType: t2.micro eu-north-1: InstanceType: t3.micro me-south-1: InstanceType: t3.micro
Pemetaan dengan beberapa nilai
Contoh berikut memiliki kunci wilayah yang dipetakan ke dua set nilai: satu bernama My AMI1 dan yang lainnya MyAMI2.
JSON
"AMIIDMap" : { "us-east-1" : {"MyAMI1" : "ami-0ff8a91507f77f867", "MyAMI2" : "ami-0a584ac55a7631c0c"}, "us-west-1" : {"MyAMI1" : "ami-0bdb828fd58c52235", "MyAMI2" : "ami-066ee5fd4a9ef77f1"}, "eu-west-1" : {"MyAMI1" : "ami-047bb4163c506cd98", "MyAMI2" : "ami-0a7c483d527806435"}, "ap-southeast-1" : {"MyAMI1" : "ami-08569b978cc4dfa10", "MyAMI2" : "ami-0be9df32ae9f92309"}, "ap-northeast-1" : {"MyAMI1" : "ami-06cd52961ce9f0d85", "MyAMI2" : "ami-053cdd503598e4a9d"} }
YAML
AMIIDMap: us-east-1: MyAMI1: ami-0ff8a91507f77f867 MyAMI2: ami-0a584ac55a7631c0c us-west-1: MyAMI1: ami-0bdb828fd58c52235 MyAMI2: ami-066ee5fd4a9ef77f1 eu-west-1: MyAMI1: ami-047bb4163c506cd98 MyAMI2: ami-0a7c483d527806435 ap-southeast-1: MyAMI1: ami-08569b978cc4dfa10 MyAMI2: ami-0be9df32ae9f92309 ap-northeast-1: MyAMI1: ami-06cd52961ce9f0d85 MyAMI2: ami-053cdd503598e4a9d
Mengembalikan nilai dari pemetaan
Anda dapat menggunakan fungsi Fn::FindInMap
untuk mengembalikan nilai bernama berdasarkan kunci tertentu. Contoh template berikut berisi EC2 sumber daya Amazon yang ImageId
propertinya ditetapkan oleh FindInMap
fungsi. FindInMap
Fungsi menentukan kunci sebagai wilayah tempat tumpukan dibuat (menggunakan parameter AWS::Region
semu) dan MyAMI1
sebagai nama nilai untuk dipetakan. Untuk informasi selengkapnya tentang parameter semu, lihatReferensi parameter semu.
JSON
{ "AWSTemplateFormatVersion" : "2010-09-09", "Mappings" : { "AMIIDMap" : { "us-east-1" : {"MyAMI1" : "ami-0ff8a91507f77f867", "MyAMI2" : "ami-0a584ac55a7631c0c"}, "us-west-1" : {"MyAMI1" : "ami-0bdb828fd58c52235", "MyAMI2" : "ami-066ee5fd4a9ef77f1"}, "eu-west-1" : {"MyAMI1" : "ami-047bb4163c506cd98", "MyAMI2" : "ami-0a7c483d527806435"}, "ap-northeast-1" : {"MyAMI1" : "ami-06cd52961ce9f0d85", "MyAMI2" : "ami-053cdd503598e4a9d"}, "ap-southeast-1" : {"MyAMI1" : "ami-08569b978cc4dfa10", "MyAMI2" : "ami-0be9df32ae9f92309"} } }, "Resources" : { "myEC2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : { "Fn::FindInMap" : [ "AMIIDMap", { "Ref" : "AWS::Region" }, "MyAMI1" ]}, "InstanceType" : "t2.micro" } } } }
YAML
AWSTemplateFormatVersion: "2010-09-09" Mappings: AMIIDMap: us-east-1: MyAMI1: ami-0ff8a91507f77f867 MyAMI2: ami-0a584ac55a7631c0c us-west-1: MyAMI1: ami-0bdb828fd58c52235 MyAMI2: ami-066ee5fd4a9ef77f1 eu-west-1: MyAMI1: ami-047bb4163c506cd98 MyAMI2: ami-0a7c483d527806435 ap-northeast-1: MyAMI1: ami-06cd52961ce9f0d85 MyAMI2: ami-053cdd503598e4a9d ap-southeast-1: MyAMI1: ami-08569b978cc4dfa10 MyAMI2: ami-0be9df32ae9f92309 Resources: myEC2Instance: Type: "AWS::EC2::Instance" Properties: ImageId: !FindInMap [AMIIDMap, !Ref "AWS::Region", MyAMI1] InstanceType: t2.micro
Parameter masukan dan Fn::FindInMap
Anda dapat menggunakan parameter input dengan fungsi Fn::FindInMap
untuk merujuk ke nilai tertentu dalam peta. Misalnya, Anda memiliki daftar wilayah dan jenis lingkungan yang dipetakan ke ID grup keamanan tertentu. Anda dapat memilih ID grup keamanan yang digunakan stack Anda dengan menggunakan parameter input (EnvironmentType
). Untuk menentukan wilayah, gunakan parameter AWS::Region
semu, yang mendapatkan di mana Anda membuat tumpukan.
JSON
{ "AWSTemplateFormatVersion" : "2010-09-09", "Parameters":{ "EnvironmentType":{ "Description":"The environment type (Dev or Prod)", "Type":"String", "Default":"Dev", "AllowedValues":[ "Dev", "Prod" ] } }, "Mappings":{ "SecurityGroupMap":{ "us-east-1": { "Dev": "sg-12345678", "Prod": "sg-abcdef01" }, "us-west-2" : { "Dev" : "sg-ghijkl23", "Prod" : "sg-45678abc" } } }, "Resources":{ "Ec2Instance":{ "Type":"AWS::EC2::Instance", "Properties":{ "ImageId": "ami-0a70b9d193ae8a799", "InstanceType": "t2.micro", "SecurityGroupIds": [{ "Fn::FindInMap" : [ "SecurityGroupMap", { "Ref" : "AWS::Region" }, { "Ref" : "EnvironmentType" } ]}] } } } }
YAML
AWSTemplateFormatVersion: "2010-09-09" Parameters: EnvironmentType: Description: The environment type (Dev or Prod) Type: String Default: Dev AllowedValues: - Dev - Prod Mappings: SecurityGroupMap: us-east-1: Dev: "sg-12345678" Prod: "sg-abcdef01" us-west-2: Dev: "sg-ghijkl23" Prod: "sg-45678abc" Resources: Ec2Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: ami-0a70b9d193ae8a799 InstanceType: t2.micro SecurityGroupIds: - !FindInMap [SecurityGroupMap, !Ref "AWS::Region", !Ref EnvironmentType]
Sumber daya terkait
Topik terkait ini dapat membantu saat Anda mengembangkan templat yang menggunakan Fn::FindInMap
fungsi tersebut.