Bagian Mappings memetakan sebuah kunci ke serangkaian nilai bernama yang sesuai. Dalam bagian Resources dan Outputs dari sebuah template, Anda dapat menggunakan fungsi bawaan Fn::FindInMap untuk mengambil nilai yang sesuai dengan kunci-kunci dalam peta dua tingkat yang dideklarasikan di bagian Mappings.
Sintaks
Bagian Mappings berisi pasangan kunci-nilai. Kunci bertipe String, sedangkan nilai dapat bertipe String, Number, Boolean, List, atau Dictionary. Jika Anda mendeklarasikan beberapa pemetaan dalam JSON, pisahkan setiap pemetaan dengan tanda koma (,). Setiap nama pemetaan harus unik.
Pemetaan harus berupa data murni dan tidak boleh mengandung fungsi.
Kami menyarankan agar Anda tidak mendefinisikan peta satu tingkat di bagian Mappings karena Resource Orchestration Service (ROS) tidak dapat mengambil nilai dari peta satu tingkat yang didefinisikan di bagian Mappings sebuah template.
Mappings:
ValidMap:
'1234567890':
TestValu3: value3
TestKey1:
TestValu1: value1
TestKey2:
TestValu2: value2
TestKey4:
TestValu4: 1234Contoh
Contoh berikut menunjukkan cara menggunakan Fn::FindInMap untuk mengambil nilai balikan:
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
regionParam:
Description: wilayah tempat Anda ingin membuat instance Elastic Compute Service (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
FAQ
Anda tidak dapat mengambil nilai dari peta satu tingkat yang didefinisikan di bagian Mappings. Untuk informasi lebih lanjut tentang cara mengambil nilai dari peta di bagian Mappings, lihat Bagaimana cara mengambil nilai dari peta dalam template?