Parameters referensi sintaks bagian untuk template CloudFormation - AWS CloudFormation

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 StringNumber, 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 atau CommaDelimitedList 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 tipeString, 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 dan No 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:

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", dan Ref 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", dan Ref 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 dan Outputs templat tersebut.

Contoh

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. NoEchoProperti 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

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.