Fn::Select - AWS CloudFormation

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

Fn::Select

Fungsi intrinsik Fn::Select mengembalikan objek tunggal dari daftar objek berdasarkan indeks.

penting

Fn::Select tidak memeriksa nilai null atau apakah indeks berada di luar batas susunan. Kedua kondisi akan menghasilkan kesalahan tumpukan, sehingga Anda harus yakin bahwa indeks yang Anda pilih valid, dan daftar berisi nilai non-null.

Pernyataan

JSON

{ "Fn::Select" : [ index, listOfObjects ] }

YAML

Sintaks untuk nama fungsi penuh:

Fn::Select: [ index, listOfObjects ]

Sintaks untuk bentuk pendek:

!Select [ index, listOfObjects ]

Parameter

indeks

Indeks objek untuk mengambil. Ini harus berupa nilai dari nol ke N-1, di mana N mewakili jumlah elemen dalam susunan.

listOfObjects

Daftar objek untuk memilih. Daftar ini tidak boleh null, juga tidak boleh memiliki entri null.

Nilai yang dikembalikan

Objek yang dipilih.

Contoh

Contoh basic

Contoh berikut mengembalikan: "grapes".

JSON

{ "Fn::Select" : [ "1", [ "apples", "grapes", "oranges", "mangoes" ] ] }

YAML

!Select [ "1", [ "apples", "grapes", "oranges", "mangoes" ] ]

 

Jenis parameter daftar yang dibatasi koma

Anda dapat menggunakan Fn::Select untuk memilih objek dari parameter CommaDelimitedList. Anda mungkin menggunakan parameter CommaDelimitedList untuk menggabungkan nilai parameter terkait, yang mengurangi jumlah total parameter di templat Anda. Misalnya, parameter berikut menentukan daftar tiga blok yang dibatasi koma: CIDR

JSON

"Parameters" : { "DbSubnetIpBlocks": { "Description": "Comma-delimited list of three CIDR blocks", "Type": "CommaDelimitedList", "Default": "10.0.48.0/24, 10.0.112.0/24, 10.0.176.0/24" } }

YAML

Parameters: DbSubnetIpBlocks: Description: "Comma-delimited list of three CIDR blocks" Type: CommaDelimitedList Default: "10.0.48.0/24, 10.0.112.0/24, 10.0.176.0/24"

Untuk menentukan salah satu dari tiga CIDR blok, gunakan Fn::Select di bagian Sumber daya dari templat yang sama, seperti yang ditunjukkan pada cuplikan contoh berikut:

JSON

"Subnet0": { "Type": "AWS::EC2::Subnet", "Properties": { "VpcId": { "Ref": "VPC" }, "CidrBlock": { "Fn::Select" : [ "0", {"Ref": "DbSubnetIpBlocks"} ] } } }

YAML

Subnet0: Type: "AWS::EC2::Subnet" Properties: VpcId: !Ref VPC CidrBlock: !Select [ 0, !Ref DbSubnetIpBlocks ]

 

Fungsi bersarang dengan bentuk pendek YAML

Contoh berikut menunjukkan pola yang valid untuk menggunakan fungsi intrinsik ber-nest dengan bentuk singkat !Select. Anda tidak dapat me-nest fungsi bentuk singkat secara berturut-turut, sehingga pola seperti !GetAZs !Ref adalah tidak valid.

YAML

AvailabilityZone: !Select - 0 - !GetAZs Ref: 'AWS::Region'

YAML

AvailabilityZone: !Select - 0 - Fn::GetAZs: !Ref 'AWS::Region'

Fungsi yang didukung

Untuk nilai indeks Fn::Select, Anda dapat menggunakan fungsi Ref dan Fn::FindInMap.

Untuk daftar Fn::Select dari objek, Anda dapat menggunakan fungsi berikut:

  • Fn::FindInMap

  • Fn::GetAtt

  • Fn::GetAZs

  • Fn::If

  • Fn::Split

  • Ref