Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Parameters referensi sintaks bagian untuk template CloudFormation
Gunakan bagian Parameters
untuk menyesuaikan templat Anda. Dengan parameter, Anda dapat memasukkan nilai kustom ke template Anda setiap kali Anda membuat atau memperbarui tumpukan. Dengan menggunakan parameter dalam template Anda, Anda dapat membuat template yang dapat digunakan kembali dan fleksibel yang dapat disesuaikan dengan skenario tertentu.
Dengan menentukan parameter dari jenis yang sesuai, Anda dapat memilih dari daftar pengidentifikasi sumber daya yang ada saat Anda menggunakan konsol untuk membuat tumpukan Anda. Untuk informasi selengkapnya, lihat Referensikan sumber daya yang ada dan parameter Systems Manager dengan CloudFormation tipe parameter yang disediakan.
Parameter adalah cara populer untuk menentukan nilai properti sumber daya tumpukan. Namun, mungkin ada pengaturan yang bergantung pada wilayah atau agak rumit bagi pengguna untuk mencari tahu karena kondisi atau dependensi lain. Dalam kasus ini, Anda mungkin ingin menempatkan beberapa logika dalam template itu sendiri sehingga pengguna dapat menentukan nilai yang lebih sederhana (atau tidak sama sekali) untuk mendapatkan hasil yang mereka inginkan, seperti dengan menggunakan pemetaan. Untuk informasi selengkapnya, lihat Mappings referensi sintaks bagian untuk template CloudFormation .
Sintaks
Anda mendeklarasikan parameter di Parameters
bagian template, yang menggunakan sintaks umum berikut:
JSON
"Parameters" : { "
ParameterLogicalID
" : { "Description
": "Information about the parameter
", "Type" : "DataType
", "Default
" : "value
", "AllowedValues
" : ["value1
", "value2
"] } }
YAML
Parameters:
ParameterLogicalID
:Description
:Information about the parameter
Type:DataType
Default
:value
AllowedValues
: -value1
-value2
Parameter berisi daftar atribut yang menentukan nilai dan batasan terhadap nilainya. Satu-satunya atribut yang diperlukan adalahType
, yang dapat berupa String
Number
, atau tipe parameter yang CloudFormation disediakan. Anda juga dapat menambahkan Description
atribut yang menjelaskan jenis nilai apa yang harus Anda tentukan. Nama dan deskripsi parameter muncul di halaman Tentukan Parameter saat Anda menggunakan templat di wizard Buat Tumpukan.
catatan
Secara default, CloudFormation konsol mencantumkan parameter input menurut abjad berdasarkan ID logisnya. Untuk mengganti urutan default ini dan mengelompokkan parameter terkait bersama-sama, Anda dapat menggunakan kunci AWS::CloudFormation::Interface
metadata di template Anda. Untuk informasi selengkapnya, lihat AWS::CloudFormation::Interface.
Untuk parameter dengan nilai default, CloudFormation gunakan nilai default kecuali pengguna menentukan nilai lain. Jika Anda menghilangkan atribut default, pengguna diminta untuk menentukan nilai untuk parameter tersebut. Namun, mengharuskan pengguna untuk memasukkan nilai tidak memastikan bahwa nilainya valid. Untuk memvalidasi nilai parameter, Anda dapat mendeklarasikan batasan atau menentukan tipe parameter -spesifik. AWS
Untuk parameter tanpa nilai default, pengguna harus menentukan nilai nama kunci pada pembuatan tumpukan. Jika tidak, CloudFormation gagal membuat tumpukan dan melempar pengecualian:
Parameters: [KeyName] must have values
Properti
AllowedPattern
-
Ekspresi reguler yang mewakili pola untuk memungkinkan
String
atauCommaDelimitedList
mengetik. Ketika diterapkan pada parameter tipeString
, pola harus cocok dengan seluruh nilai parameter yang disediakan. Ketika diterapkan ke parameter tipeCommaDelimitedList
, pola harus cocok dengan setiap nilai dalam daftar.Wajib: Tidak
AllowedValues
-
Array yang berisi daftar nilai yang diizinkan untuk parameter. Ketika diterapkan ke parameter tipe
String
, nilai parameter harus menjadi salah satu nilai yang diizinkan. Ketika diterapkan ke parameter tipeCommaDelimitedList
, setiap nilai dalam daftar harus menjadi salah satu nilai yang diizinkan yang ditentukan.Wajib: Tidak
catatan
Jika Anda menggunakan YAML dan ingin menggunakan
Yes
danNo
string untukAllowedValues
, gunakan tanda kutip tunggal untuk mencegah YAML parser mempertimbangkan nilai boolean ini. ConstraintDescription
-
Suatu string yang menjelaskan kendala ketika ia dilanggar. Sebagai contoh, tanpa deskripsi kendala, parameter yang memiliki pola yang diizinkan
[A-Za-z0-9]+
menampilkan pesan kesalahan berikut ketika pengguna menentukan nilai yang tidak valid:Malformed input-Parameter MyParameter must match pattern [A-Za-z0-9]+
Dengan menambahkan deskripsi kendala, seperti hanya boleh berisi huruf (huruf besar dan huruf kecil) dan angka, Anda dapat menampilkan pesan kesalahan yang disesuaikan berikut:
Malformed input-Parameter MyParameter must only contain uppercase and lowercase letters and numbers
Wajib: Tidak
Default
-
Nilai tipe yang sesuai untuk templat untuk digunakan jika tidak ada nilai yang ditentukan ketika tumpukan dibuat. Jika Anda menentukan kendala untuk parameter, Anda harus menentukan nilai yang mematuhi kendala tersebut.
Wajib: Tidak
Description
-
String hingga 4000 karakter yang menggambarkan parameter.
Wajib: Tidak
MaxLength
-
Nilai integer yang menentukan jumlah karakter terbesar dengan
String
tipe yang Anda izinkan.Wajib: Tidak
MaxValue
-
Nilai numerik yang menentukan nilai numerik terbesar dengan
Number
tipe yang ingin Anda izinkan.Wajib: Tidak
MinLength
-
Nilai integer yang menentukan jumlah karakter terbesar dengan
String
tipe yang ingin Anda izinkan.Wajib: Tidak
MinValue
-
Nilai numerik yang menentukan nilai numerik terkecil dengan
Number
tipe yang ingin Anda izinkan.Wajib: Tidak
NoEcho
-
Apakah akan menutupi nilai parameter untuk mencegahnya ditampilkan di konsol, alat baris perintah, atauAPI. Jika Anda menyetel
NoEcho
atribut ketrue
, CloudFormation mengembalikan nilai parameter yang disamarkan sebagai tanda bintang (*****) untuk setiap panggilan yang menggambarkan peristiwa tumpukan atau tumpukan, kecuali untuk informasi yang disimpan di lokasi yang ditentukan di bawah ini.Wajib: Tidak
penting
Menggunakan
NoEcho
atribut tidak menutupi informasi apa pun yang disimpan sebagai berikut:-
Bagian
Metadata
template. CloudFormation tidak mengubah, memodifikasi, atau menyunting informasi apa pun yang Anda sertakan diMetadata
bagian ini. Untuk informasi selengkapnya, lihat Metadata referensi sintaks bagian untuk template CloudFormation . -
Bagian
Outputs
template. Untuk informasi selengkapnya, lihat Outputs referensi sintaks bagian untuk template CloudFormation . -
Metadata
Atribut definisi sumber daya. Untuk informasi selengkapnya, lihat Metadataatribut.
Kami sangat menyarankan Anda untuk tidak menggunakan mekanisme ini untuk memasukkan informasi sensitif, seperti kata sandi atau rahasia.
penting
Daripada menyematkan informasi sensitif secara langsung di CloudFormation template Anda, kami sarankan Anda menggunakan parameter dinamis dalam template tumpukan untuk mereferensikan informasi sensitif yang disimpan dan dikelola di luar CloudFormation, seperti di AWS Systems Manager Parameter Store atau AWS Secrets Manager.
Untuk informasi lebih lanjut, lihat praktik Jangan menanamkan kredensial dalam templat Anda terbaik.
penting
Kami sangat menyarankan agar tidak termasuk
NoEcho
parameter, atau data sensitif apa pun, di properti sumber daya yang merupakan bagian dari pengenal utama sumber daya.Ketika
NoEcho
parameter disertakan dalam properti yang membentuk pengenal sumber daya utama, CloudFormation dapat menggunakan nilai plaintext aktual dalam pengidentifikasi sumber daya utama. ID sumber daya ini mungkin muncul dalam output turunan atau tujuan.Untuk menentukan properti sumber daya mana yang terdiri dari pengidentifikasi utama tipe sumber daya, lihat dokumentasi referensi sumber daya untuk sumber daya tersebut di. AWS referensi jenis sumber daya dan properti Di bagian Kembalikan nilai, nilai
Ref
pengembalian fungsi mewakili properti sumber daya yang terdiri dari tipe pengidentifikasi utama sumber daya. -
Type
-
Tipe data untuk parameter (
DataType
).Wajib: Ya
CloudFormation mendukung jenis parameter berikut:
String
-
Sebuah string literal. Anda dapat menggunakan atribut berikut untuk mendeklarasikan batasan:
MinLength
,,,,MaxLength
dan.Default
AllowedValues
AllowedPattern
Misalnya, pengguna dapat menentukan
"MyUserName"
. Number
-
Sebuah integer atau float. CloudFormation memvalidasi nilai parameter sebagai angka; Namun, ketika Anda menggunakan parameter di tempat lain di template Anda (misalnya, dengan menggunakan fungsi
Ref
intrinsik), nilai parameter menjadi string.Anda dapat menggunakan atribut berikut untuk mendeklarasikan batasan:
MinValue
,,, dan.MaxValue
Default
AllowedValues
Misalnya, pengguna dapat menentukan
"8888"
. List<Number>
-
Array bilangan bulat atau pelampung yang dipisahkan oleh koma. CloudFormationmemvalidasi nilai parameter sebagai angka; Namun, ketika Anda menggunakan parameter di tempat lain di template Anda (misalnya, dengan menggunakan fungsi
Ref
intrinsik), nilai parameter menjadi daftar string.Misalnya, pengguna dapat menentukan
"80,20"
, danRef
akan menghasilkan["80","20"]
. CommaDelimitedList
-
Array string literal yang dipisahkan dengan koma. Jumlah total string harus satu lebih dari jumlah koma. Juga, setiap string anggota dipangkas ruang.
Misalnya, pengguna dapat menentukan
"test,dev,prod"
, danRef
akan menghasilkan["test","dev","prod"]
. - AWS-jenis parameter tertentu
-
AWS nilai-nilai seperti nama EC2 key pair Amazon dan VPCIDs. Untuk informasi selengkapnya, lihat Gunakan CloudFormation tipe parameter yang disediakan.
- Jenis parameter Systems Manager
-
Parameter yang sesuai dengan parameter yang ada di Systems Manager Parameter Store. Anda menentukan kunci parameter Systems Manager sebagai nilai tipe parameter Systems Manager, dan CloudFormation mengambil nilai terbaru dari Parameter Store yang akan digunakan untuk tumpukan. Untuk informasi selengkapnya, lihat Gunakan CloudFormation tipe parameter yang disediakan.
Persyaratan umum untuk parameter
Persyaratan berikut berlaku saat menggunakan parameter:
-
Anda dapat memiliki maksimum 200 parameter dalam CloudFormation template.
-
Setiap parameter harus diberi nama logis (juga disebut ID logis) yang harus alfanumerik dan unik di antara semua nama logis dalam template.
-
Setiap parameter harus diberi tipe parameter yang didukung oleh CloudFormation. Untuk informasi lebih lanjut, lihat Tipe.
-
Setiap parameter harus diberi nilai saat runtime CloudFormation agar berhasil menyediakan tumpukan. Anda dapat secara opsional menentukan nilai default CloudFormation untuk digunakan kecuali nilai lain disediakan.
-
Parameter harus dinyatakan dan direferensikan dari dalam templat yang sama. Anda dapat mereferensikan parameter dari bagian
Resources
danOutputs
templat tersebut.
Contoh
Topik
Parameter string sederhana
Contoh berikut mendeklarasikan parameter bernama InstanceTypeParameter
tipeString
. Parameter ini memungkinkan Anda menentukan jenis EC2 instans Amazon untuk tumpukan. Jika tidak ada nilai yang diberikan selama pembuatan atau pembaruan tumpukan, CloudFormation gunakan nilai defaultt2.micro
.
JSON
"Parameters" : { "InstanceTypeParameter" : { "Description" : "Enter t2.micro, m1.small, or m1.large. Default is t2.micro.", "Type" : "String", "Default" : "t2.micro", "AllowedValues" : ["t2.micro", "m1.small", "m1.large"] } }
YAML
Parameters: InstanceTypeParameter: Description: Enter t2.micro, m1.small, or m1.large. Default is t2.micro. Type: String Default: t2.micro AllowedValues: - t2.micro - m1.small - m1.large
Parameter kata sandi
Contoh berikut mendeklarasikan parameter bernama DBPwd
tipe String
tanpa nilai default. NoEcho
Properti diatur true
untuk mencegah nilai parameter ditampilkan dalam deskripsi tumpukan. Nilai minimum yang dapat ditentukan adalah 1
, dan panjang maksimum yang dapat ditentukan adalah 41
. Pola ini memungkinkan huruf kecil dan huruf besar karakter abjad dan angka. Contoh ini juga menggambarkan penggunaan ekspresi reguler untuk AllowedPattern
properti.
JSON
"Parameters" : { "DBPwd" : { "NoEcho" : "true", "Description" : "The database admin account password", "Type" : "String", "MinLength" : "1", "MaxLength" : "41", "AllowedPattern" : "^[a-zA-Z0-9]*$" } }
YAML
Parameters: DBPwd: NoEcho: true Description: The database admin account password Type: String MinLength: 1 MaxLength: 41 AllowedPattern: ^[a-zA-Z0-9]*$
Parameter referensi
Anda menggunakan fungsi Ref
intrinsik untuk mereferensikan parameter, dan CloudFormation menggunakan nilai parameter untuk menyediakan tumpukan. Anda dapat mereferensikan parameter dari bagian Resources
dan Outputs
dari templat yang sama.
Dalam contoh berikut, InstanceType
properti sumber daya EC2 instance mereferensikan nilai InstanceTypeParameter
parameter:
JSON
"Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "InstanceType" : { "Ref" : "InstanceTypeParameter" }, "ImageId" : "ami-0ff8a91507f77f867" } }
YAML
Ec2Instance: Type: AWS::EC2::Instance Properties: InstanceType: Ref: InstanceTypeParameter ImageId: ami-0ff8a91507f77f867
Parameter daftar yang dibatasi koma
Jenis CommaDelimitedList
parameter dapat berguna ketika Anda perlu memberikan beberapa nilai untuk satu properti. Contoh berikut mendeklarasikan parameter bernama DbSubnetIpBlocks
dengan nilai default tiga CIDR blok dipisahkan dengan koma.
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"
Kembalikan nilai dari parameter daftar yang dipisahkan koma
Untuk merujuk ke nilai tertentu dalam daftar parameter yang dibatasi koma, gunakan fungsi Fn::Select
intrinsik di bagian templat Anda. Resources
Lulus nilai indeks objek yang Anda inginkan dan daftar objek, seperti yang ditunjukkan pada contoh berikut.
JSON
{ "Parameters": { "VPC": { "Type": "String", "Default": "vpc-123456" }, "VpcAzs": { "Type": "CommaDelimitedList", "Default": "us-west-2a, us-west-2b, us-west-2c" }, "DbSubnetIpBlocks": { "Type": "CommaDelimitedList", "Default": "172.16.0.0/26, 172.16.0.64/26, 172.16.0.128/26" } }, "Resources": { "DbSubnet1": { "Type": "AWS::EC2::Subnet", "Properties": { "AvailabilityZone": { "Fn::Sub": [ "${AWS::Region}${AZ}", { "AZ": { "Fn::Select": [ 0, { "Ref": "VpcAzs" } ] } } ] }, "VpcId": { "Ref": "VPC" }, "CidrBlock": { "Fn::Select": [ 0, { "Ref": "DbSubnetIpBlocks" } ] } } }, "DbSubnet2": { "Type": "AWS::EC2::Subnet", "Properties": { "AvailabilityZone": { "Fn::Sub": [ "${AWS::Region}${AZ}", { "AZ": { "Fn::Select": [ 1, { "Ref": "VpcAzs" } ] } } ] }, "VpcId": { "Ref": "VPC" }, "CidrBlock": { "Fn::Select": [ 1, { "Ref": "DbSubnetIpBlocks" } ] } } }, "DbSubnet3": { "Type": "AWS::EC2::Subnet", "Properties": { "AvailabilityZone": { "Fn::Sub": [ "${AWS::Region}${AZ}", { "AZ": { "Fn::Select": [ 2, { "Ref": "VpcAzs" } ] } } ] }, "VpcId": { "Ref": "VPC" }, "CidrBlock": { "Fn::Select": [ 2, { "Ref": "DbSubnetIpBlocks" } ] } } } } }
YAML
Parameters: VPC: Type: String Default: vpc-123456 VpcAzs: Type: CommaDelimitedList Default: us-west-2a, us-west-2b, us-west-2c DbSubnetIpBlocks: Type: CommaDelimitedList Default: 172.16.0.0/26, 172.16.0.64/26, 172.16.0.128/26 Resources: DbSubnet1: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - ${AWS::Region}${AZ} - AZ: !Select - 0 - !Ref VpcAzs VpcId: !Ref VPC CidrBlock: !Select - 0 - !Ref DbSubnetIpBlocks DbSubnet2: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - ${AWS::Region}${AZ} - AZ: !Select - 1 - !Ref VpcAzs VpcId: !Ref VPC CidrBlock: !Select - 1 - !Ref DbSubnetIpBlocks DbSubnet3: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - ${AWS::Region}${AZ} - AZ: !Select - 2 - !Ref VpcAzs VpcId: !Ref VPC CidrBlock: !Select - 2 - !Ref DbSubnetIpBlocks
Sumber daya terkait
CloudFormation juga mendukung penggunaan referensi dinamis untuk menentukan nilai properti secara dinamis. Misalnya, Anda mungkin perlu mereferensikan string aman yang disimpan di Systems Manager Parameter Store. Untuk informasi selengkapnya, lihat Dapatkan nilai yang disimpan di layanan lain menggunakan referensi dinamis.
Anda juga dapat menggunakan parameter semu dalam fungsi Ref
atau Sub
fungsi untuk mengisi nilai secara dinamis. Untuk informasi selengkapnya, lihat Referensi parameter semu.