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