Fn::FindInMap - AWS CloudFormation

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Fn::FindInMap

Fungsi intrinsik Fn::FindInMap mengembalikan nilai yang sesuai dengan kunci dalam peta dua tingkat yang dideklarasikan di bagian. Mappings

Untuk informasi lebih lanjut tentang penyempurnaan fungsi Fn::FindInMap intrinsik saat menggunakan transformasi, lihat. AWS::LanguageExtensions Fn::FindInMap enhancements

Pernyataan

JSON

{ "Fn::FindInMap" : [ "MapName", "TopLevelKey", "SecondLevelKey"] }

YAML

Sintaks untuk nama fungsi penuh:

Fn::FindInMap: [ MapName, TopLevelKey, SecondLevelKey ]

Sintaks untuk bentuk pendek:

!FindInMap [ MapName, TopLevelKey, SecondLevelKey ]
catatan

Anda tidak dapat me-nest dua instans dari dua fungsi dalam bentuk singkat.

Parameter

MapName

Nama logis dari pemetaan dinyatakan di bagian Pemetaan yang berisi kunci dan nilai.

TopLevelKey

Nama kunci tingkat atas. Nilainya adalah daftar pasangan nilai kunci.

SecondLevelKey

Nama kunci tingkat kedua, yang diatur ke salah satu kunci dari daftar yang ditetapkan untuk TopLevelKey.

Nilai kembali:

Nilai yang ditetapkan untukSecondLevelKey.

Contoh

Contoh berikut menunjukkan cara menggunakan Fn::FindInMap template dengan Mappings bagian yang berisi peta tunggalRegionMap, yang mengaitkan AMI dengan AWS Wilayah.

  • Peta ini memiliki 5 kunci tingkat atas yang sesuai dengan berbagai AWS Wilayah.

  • Setiap kunci tingkat atas diberikan daftar dengan dua kunci tingkat kedua, "HVM64" dan "HVMG2", yang sesuai dengan arsitektur AMI.

  • Setiap kunci tingkat kedua diberi nama AMI yang sesuai.

Contoh templat berisi sumber daya AWS::EC2::Instance yang properti ImageId-nya diatur berdasarkan fungsi FindInMap.

MapNamediatur ke peta yang menarik, "RegionMap" dalam contoh ini. TopLevelKeydiatur ke Wilayah tempat tumpukan dibuat, yang ditentukan dengan menggunakan parameter "AWS::Region" semu. SecondLevelKeydiatur ke arsitektur yang diinginkan, "HVM64" untuk contoh ini.

FindInMap mengembalikan AMI yang ditetapkan untuk FindInMap. Untuk instans HVM64 di us-east-1, FindInMap akan mengembalikan "ami-0ff8a91507f77f867".

JSON

{ ... "Mappings" : { "RegionMap" : { "us-east-1" : { "HVM64" : "ami-0ff8a91507f77f867", "HVMG2" : "ami-0a584ac55a7631c0c" }, "us-west-1" : { "HVM64" : "ami-0bdb828fd58c52235", "HVMG2" : "ami-066ee5fd4a9ef77f1" }, "eu-west-1" : { "HVM64" : "ami-047bb4163c506cd98", "HVMG2" : "ami-0a7c483d527806435" }, "ap-southeast-1" : { "HVM64" : "ami-08569b978cc4dfa10", "HVMG2" : "ami-0be9df32ae9f92309" }, "ap-northeast-1" : { "HVM64" : "ami-06cd52961ce9f0d85", "HVMG2" : "ami-053cdd503598e4a9d" } } }, "Resources" : { "myEC2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "HVM64" ] }, "InstanceType" : "m1.small" } } } }

YAML

Mappings: RegionMap: us-east-1: HVM64: "ami-0ff8a91507f77f867" HVMG2: "ami-0a584ac55a7631c0c" us-west-1: HVM64: "ami-0bdb828fd58c52235" HVMG2: "ami-066ee5fd4a9ef77f1" eu-west-1: HVM64: "ami-047bb4163c506cd98" HVMG2: "ami-31c2f645" ap-southeast-1: HVM64: "ami-08569b978cc4dfa10" HVMG2: "ami-0be9df32ae9f92309" ap-northeast-1: HVM64: "ami-06cd52961ce9f0d85" HVMG2: "ami-053cdd503598e4a9d" Resources: myEC2Instance: Type: "AWS::EC2::Instance" Properties: ImageId: !FindInMap - RegionMap - !Ref 'AWS::Region' - HVM64 InstanceType: m1.small

Fungsi yang didukung

Anda dapat menggunakan fungsi berikut di fungsi Fn::FindInMap:

  • Fn::FindInMap

  • Ref