Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Parameter
Gunakan bagian Parameters
untuk menyesuaikan templat Anda. Parameter memungkinkan Anda untuk meneruskan nilai templat sehingga Anda dapat menyesuaikan sumber daya setiap kali membuat tumpukan.
Mendefinisikan parameter dalam templat
Contoh berikut menyatakan parameter bernama InstanceTypeParameter
. Parameter ini memungkinkan Anda menentukan jenis instans Amazon EC2 untuk tumpukan yang akan digunakan saat Anda membuat atau memperbarui tumpukan.
Perhatikan bahwa InstanceTypeParameter
memiliki nilai default dari t2.micro
. Ini adalah nilai yang AWS CloudFormation digunakan untuk menyediakan tumpukan kecuali nilai lain disediakan.
JSON
"Parameters" : { "InstanceTypeParameter" : { "Type" : "String", "Default" : "t2.micro", "AllowedValues" : ["t2.micro", "m1.small", "m1.large"], "Description" : "Enter t2.micro, m1.small, or m1.large. Default is t2.micro." } }
YAML
Parameters: InstanceTypeParameter: Type: String Default: t2.micro AllowedValues: - t2.micro - m1.small - m1.large Description: Enter t2.micro, m1.small, or m1.large. Default is t2.micro.
Referensi parameter dalam templat
Anda menggunakan fungsi Ref
intrinsik untuk mereferensikan parameter, dan AWS CloudFormation menggunakan nilai parameter untuk menyediakan tumpukan. Anda dapat mereferensikan parameter dari bagian Resources
dan Outputs
dari templat yang sama.
Pada contoh berikut, InstanceType
properti referensi sumber daya Instans EC2 InstanceTypeParameter
nilai 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
Persyaratan umum untuk parameter
Persyaratan berikut berlaku saat menggunakan parameter:
-
Anda dapat memiliki maksimum 200 parameter dalam AWS CloudFormation template.
-
Setiap parameter harus diberi nama logis (juga disebut ID logis), yang harus alfanumerik dan unik di antara semua nama logis dalam templat.
-
Setiap parameter harus diberi tipe parameter yang didukung oleh AWS CloudFormation. Untuk informasi lebih lanjut, lihat Tipe.
-
Setiap parameter harus diberi nilai saat runtime AWS CloudFormation agar berhasil menyediakan tumpukan. Anda dapat secara opsional menentukan nilai default AWS 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.
JSON
"Parameters" : { "
ParameterLogicalID
" : { "Type" : "DataType
", "ParameterProperty
" : "value
" } }
YAML
Parameters:
ParameterLogicalID
: Type:DataType
ParameterProperty
:value
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 YAMAL dan ingin menggunakan
Yes
danNo
string untukAllowedValues
, gunakan tanda kutip tunggal untuk mencegah parser YAMAL 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, atau API. 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. -
Bagian
Outputs
template. Untuk informasi selengkapnya, lihat Output. -
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 yang terdiri dari pengenal primer tipe sumber daya ini, lihat dokumentasi referensi sumber daya untuk sumber daya itu. 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
AWS CloudFormation mendukung jenis parameter berikut:
String
-
Sebuah string literal.
Misalnya, pengguna dapat menentukan
"MyUserName"
. Number
-
Sebuah integer atau float. AWS 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.Misalnya, pengguna dapat menentukan
"8888"
. List<Number>
-
Array bilangan bulat atau pelampung yang dipisahkan oleh koma. AWS 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 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-tipe parameter tertentu
-
AWS nilai seperti nama key pair Amazon EC2 dan ID VPC. Untuk informasi selengkapnya, lihat AWS–tipe parameter tertentu.
SSM
Tipe parameter-
Parameter yang sesuai dengan parameter yang ada di Systems Manager Parameter Store. Anda menentukan kunci parameter Systems Manager sebagai nilai
SSM
parameter, dan AWS CloudFormation mengambil nilai terbaru dari Parameter Store yang akan digunakan untuk tumpukan. Untuk informasi selengkapnya, lihat Tipe parameter SSM.
AWS–tipe parameter tertentu
AWS-tipe parameter tertentu membantu dalam menangkap nilai-nilai yang tidak valid pada awal membuat atau memperbarui tumpukan. Untuk menentukan parameter dengan tipe AWS-spesifik, pengguna template harus memasukkan AWS nilai yang ada di AWS akun mereka. AWS CloudFormation memvalidasi nilai input ini terhadap nilai yang ada di akun. Misalnya, dengan AWS::EC2::VPC::Id
tipe parameter, pengguna harus memasukkan ID VPC yang ada yang ada di akun dan wilayah tumpukan diciptakan.
Jika Anda ingin mengizinkan pengguna template memasukkan nilai masukan dari AWS akun yang berbeda, jangan tentukan parameter dengan tipe AWS-spesifik; sebagai gantinya, tentukan parameter tipe String
atauCommaDelimitedList
.
Jenis parameter AWS spesifik yang didukung
AWS CloudFormation mendukung jenis AWS-spesifik berikut:
AWS::EC2::AvailabilityZone::Name
-
Availability Zone, seperti
us-west-2a
. AWS::EC2::Image::Id
-
ID gambar Amazon EC2, seperti.
ami-0ff8a91507f77f867
Perhatikan bahwa AWS CloudFormation konsol tidak menampilkan daftar drop-down nilai untuk tipe parameter ini. AWS::EC2::Instance::Id
-
ID instans Amazon EC2, seperti.
i-1e731a32
AWS::EC2::KeyPair::KeyName
-
Nama key pair Amazon EC2.
AWS::EC2::SecurityGroup::GroupName
-
Nama grup keamanan VPC EC2-Classic atau default, seperti
my-sg-abc
. AWS::EC2::SecurityGroup::Id
-
ID grup keamanan, seperti
sg-a123fd85
. AWS::EC2::Subnet::Id
-
ID subnet, seperti
subnet-123a351e
. AWS::EC2::Volume::Id
-
ID volume Amazon EBS, seperti
vol-3cdd3f56
. AWS::EC2::VPC::Id
-
ID VPC, seperti
vpc-a123baa3
. AWS::Route53::HostedZone::Id
-
ID zona yang dihosting Amazon Route 53, seperti
Z23YXV4OVPL04A
. List<AWS::EC2::AvailabilityZone::Name>
-
Susunan Availability Zone untuk suatu wilayah, seperti
us-west-2a, us-west-2b
. List<AWS::EC2::Image::Id>
-
Array ID gambar Amazon EC2, seperti.
ami-0ff8a91507f77f867, ami-0a584ac55a7631c0c
Perhatikan bahwa AWS CloudFormation konsol tidak menampilkan daftar drop-down nilai untuk jenis parameter ini. List<AWS::EC2::Instance::Id>
-
Larik ID instans Amazon EC2, seperti.
i-1e731a32, i-1e731a34
List<AWS::EC2::SecurityGroup::GroupName>
-
Susunan EC2-klasik atau default VPC nama grup keamanan, seperti
my-sg-abc, my-sg-def
. List<AWS::EC2::SecurityGroup::Id>
-
Array ID grup keamanan, seperti
sg-a123fd85, sg-b456fd85
. List<AWS::EC2::Subnet::Id>
-
Array ID subnet, seperti
subnet-123a351e, subnet-456b351e
. List<AWS::EC2::Volume::Id>
-
Array ID volume Amazon EBS, seperti
vol-3cdd3f56, vol-4cdd3f56
. List<AWS::EC2::VPC::Id>
-
Susunan ID VPC, seperti
vpc-a123baa3, vpc-b456baa3
. List<AWS::Route53::HostedZone::Id>
-
Array ID zona yang dihosting Amazon Route 53, seperti
Z23YXV4OVPL04A, Z23YXV4OVPL04B
.
Tipe parameter SSM
Jenis parameter SSM sesuai dengan parameter yang ada di Systems Manager Parameter Store. Anda menentukan kunci parameter Systems Manager sebagai nilai SSM
parameter, dan AWS CloudFormation mengambil nilai terbaru dari Parameter Store yang akan digunakan untuk tumpukan. Untuk parameter SSM yang disimpan dalam hal yang sama Akun AWS, masukkan nama parameter. Untuk parameter SSM yang dibagikan oleh yang lain Akun AWS, masukkan parameter lengkap ARN. Untuk informasi selengkapnya tentang parameter Systems Manager, lihat Systems Manager Parameter Store dan Bekerja dengan parameter bersama di Panduan AWS Systems Manager Pengguna.
Anda juga dapat menggunakan ssm
atau ssm-secure
pola parameter dinamis untuk menentukan nilai parameter dalam templat Anda. Untuk informasi selengkapnya, lihat Menggunakan referensi dinamis untuk menentukan nilai templat.
Saat Anda membuat atau memperbarui tumpukan dan membuat set perubahan, AWS CloudFormation gunakan nilai apa pun yang ada di Parameter Store pada saat operasi dijalankan. Jika parameter tertentu tidak ada di Parameter Store di bawah AWS akun pemanggil, AWS CloudFormation mengembalikan kesalahan validasi.
Ketika Anda menjalankan set perubahan, AWS CloudFormation menggunakan nilai-nilai yang ditentukan dalam set perubahan. Anda harus meninjau nilai-nilai ini sebelum mengeksekusi perubahan yang ditetapkan karena mereka mungkin berubah dalam Penyimpanan Parameter antara waktu saat Anda membuat perubahan set dan menjalankannya.
Tip
Anda dapat melihat nilai yang diselesaikan untuk SSM
parameter pada tab tumpukan Parameter di konsol, atau dengan menjalankan describe-stacks
atau describe-change-set
. Ini adalah nilai yang saat ini digunakan dalam definisi tumpukan untuk kunci parameter Systems Manager yang sesuai. Perhatikan bahwa nilai-nilai ini ditetapkan ketika tumpukan dibuat atau diperbarui, sehingga mereka mungkin berbeda dari nilai-nilai terbaru di Penyimpanan Parameter.
Jika Anda menetapkan String Aman sebagai nilai parameter menggunakan ssm-secure
pola, AWS CloudFormation tidak menyimpan nilai String Aman atau menampilkannya di konsol atau dalam hasil panggilan API.
Karena nilai SSM
parameter adalah kunci parameter Systems Manager, Anda harus menyadari perilaku berikut:
-
Untuk pembaruan tumpukan, opsi Gunakan nilai yang ada di konsol dan
UsePreviousValue
atribut untukupdate-stack
memberitahu AWS CloudFormation untuk menggunakan kunci parameter Systems Manager yang ada—bukan nilainya. AWS CloudFormation selalu mengambil nilai terbaru dari Parameter Store saat memperbarui tumpukan.Namun, jika Anda menggunakan pola parameter
ssm
ataussm-secure
dinamis untuk menentukan nilai parameter, Anda harus menentukan versi parameter Systems Manager AWS CloudFormation untuk digunakan. -
AWS CloudFormation dapat melakukan validasi pada kunci parameter Systems Manager, tetapi tidak pada nilai yang sesuai. Untuk tujuan validasi, Anda dapat memperlakukan kunci parameter sebagai string. Anda harus melakukan validasi untuk nilai parameter Systems Manager di Parameter Store.
Lihat SSM Tipe parameter untuk contoh yang menggunakan SSM
jenis parameter.
Tipe parameter SSM yang didukung
AWS CloudFormation mendukung jenis SSM
parameter berikut:
AWS::SSM::Parameter::Name
-
Nama kunci parameter Systems Manager.
Gunakan parameter ini bila Anda ingin melewati kunci parameter. Misalnya, Anda dapat menggunakan tipe ini untuk memvalidasi bahwa parameter ada.
AWS::SSM::Parameter::Value<String>
-
Parameter Systems Manager yang nilainya adalah string. Hal ini sesuai dengan
String
tipe parameter di Penyimpanan Parameter. AWS::SSM::Parameter::Value<List<String>>
atauAWS::SSM::Parameter::Value<CommaDelimitedList>
-
Parameter Systems Manager yang nilainya adalah daftar string. Hal ini sesuai dengan
StringList
tipe parameter di Penyimpanan Parameter. AWS::SSM::Parameter::Value<
AWS-specific parameter type
>-
Parameter Systems Manager yang nilainya adalah tipe parameter AWS-spesifik. Sebagai contoh, berikut menentukan
AWS::EC2::KeyPair::KeyName
tipe:AWS::SSM::Parameter::Value<AWS::EC2::KeyPair::KeyName>
AWS::SSM::Parameter::Value<List<
AWS-specific parameter type
>>-
Parameter Systems Manager yang nilainya adalah daftar tipe parameter AWS-spesifik. Sebagai contoh, berikut menentukan daftar
AWS::EC2::KeyPair::KeyName
tipe:AWS::SSM::Parameter::Value<List<AWS::EC2::KeyPair::KeyName>>
Tipe parameter SSM tidak didukung
AWS CloudFormation tidak mendukung jenis SSM
parameter berikut:
-
Daftar tipe
SSM
parameter—misalnya:List<AWS::SSM::Parameter::Value<String>>
Selain itu, AWS CloudFormation tidak mendukung mendefinisikan parameter template sebagai tipe parameter SecureString
Systems Manager. Namun, Anda dapat menentukan String Aman sebagai parameter nilai untuk sumber daya tertentu dengan menggunakan pola parameter dinamis. Untuk informasi selengkapnya, lihat Menggunakan referensi dinamis untuk menentukan nilai templat.
Pengelompokan dan pengurutan parameter dalam AWS CloudFormation konsol
Saat Anda menggunakan AWS CloudFormation konsol untuk membuat atau memperbarui tumpukan, konsol secara abjad mencantumkan parameter input berdasarkan ID logisnya. Ketika membuat templat, Anda dapat menggunakan AWS::CloudFormation::Interface
kunci metadata. Dengan mengelompokkan dan memesan parameter, lebih mudah bagi pengguna untuk menentukan nilai parameter. Misalnya, Anda dapat mengelompokkan semua parameter terkait VPC sehingga tidak tersebar di seluruh daftar abjad.
Pada kunci metadata, Anda dapat menentukan grup yang akan dibuat, parameter yang akan disertakan di setiap grup, dan urutan saat konsol menampilkan setiap parameter dalam kelompoknya. Anda juga dapat menentukan nama parameter ramah sehingga konsol menunjukkan nama deskriptif bukan ID logis. Semua parameter yang Anda referensikan dalam kunci metadata harus dinyatakan dalam Parameters
bagian dari template.
Untuk informasi lebih lanjut dan contoh AWS::CloudFormation::Interface
kunci metadata, lihat AWS::CloudFormation::Interface.
Contoh
Parameter input dasar
Contoh bagian Parameters
berikut menyatakan dua parameter. Parameter DBPort
adalah tipe Number
dengan default dari 3306
. Nilai minimum yang dapat ditentukan adalah 1150
, dan nilai maksimum yang dapat ditentukan adalah 65535
. Parameter DBPwd
adalah tipe String
tanpa nilai default. NoEcho
Properti diatur true
untuk mencegah mendeskripsikan panggilan tumpukan, seperti aws cloudformation describe-stacks
AWS CLI perintah, dari mengembalikan nilai parameter. 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.
JSON
"Parameters" : { "DBPort" : { "Default" : "3306", "Description" : "TCP/IP port for the database", "Type" : "Number", "MinValue" : "1150", "MaxValue" : "65535" }, "DBPwd" : { "NoEcho" : "true", "Description" : "The database admin account password", "Type" : "String", "MinLength" : "1", "MaxLength" : "41", "AllowedPattern" : "^[a-zA-Z0-9]*$" } }
YAML
Parameters: DBPort: Default: 3306 Description: TCP/IP port for the database Type: Number MinValue: 1150 MaxValue: 65535 DBPwd: NoEcho: true Description: The database admin account password Type: String MinLength: 1 MaxLength: 41 AllowedPattern: ^[a-zA-Z0-9]*$
AWS-jenis parameter tertentu
Bila Anda menggunakan tipe parameter AWS-specific, pengguna yang menggunakan template Anda untuk membuat atau memperbarui tumpukan harus menentukan AWS nilai yang ada di akun pengguna dan di wilayah untuk tumpukan saat ini. AWS Jenis parameter spesifik membantu memastikan bahwa nilai input untuk tipe ini ada dan benar sebelum AWS CloudFormation membuat atau memperbarui sumber daya apa pun. Misalnya, jika Anda menggunakan tipe AWS::EC2::KeyPair::KeyName
parameter, AWS CloudFormation
memvalidasi nilai input terhadap nama key pair pengguna yang ada sebelum membuat sumber daya apa pun, seperti instans Amazon EC2.
Jika pengguna menggunakan AWS Management Console, AWS CloudFormation mengisi tipe parameter AWS-spesifik dengan nilai yang valid. Dengan begitu pengguna tidak perlu mengingat dan memasukkan nama atau ID tertentu dengan benar. Mereka hanya akan memilih satu nilai atau lebih dari daftar drop-down. Tergantung dari tipe parameter, Anda dapat mencari nilai menurut ID, nama, atau nilai tanda Nama. Untuk informasi selengkapnya, lihat Penentuan nama tumpukan dan parameter.
Contoh berikut menyatakan dua parameter dengan tipe AWS::EC2::KeyPair::KeyName
dan AWS::EC2::Subnet::Id
. Tipe ini membatasi nilai yang valid untuk nama pasangan kunci yang ada dan ID subnet. Karena mySubnetIDs
parameter ditetapkan sebagai daftar, pengguna dapat menentukan satu ID subnet atau lebih.
JSON
"Parameters" : { "myKeyPair" : { "Description" : "Amazon EC2 Key Pair", "Type" : "AWS::EC2::KeyPair::KeyName" }, "mySubnetIDs" : { "Description" : "Subnet IDs", "Type" : "List<AWS::EC2::Subnet::Id>" } }
YAML
Parameters: myKeyPair: Description: Amazon EC2 Key Pair Type: "AWS::EC2::KeyPair::KeyName" mySubnetIDs: Description: Subnet IDs Type: "List<AWS::EC2::Subnet::Id>"
AWS CLI dan dukungan API
Saat ini, pengguna tidak dapat menggunakan AWS CloudFormation API AWS CLI atau untuk melihat daftar nilai yang valid untuk parameter AWS-specific. Namun, mereka dapat melihat informasi tentang setiap parameter, seperti tipe parameter, dengan menggunakan aws cloudformation get-template-summary
perintah atau GetTemplateSummary
API.
Tipe parameter daftar pembatas koma
Anda dapat menggunakan CommaDelimitedList
tipe parameter untuk menentukan beberapa nilai string dalam satu parameter. Dengan cara itu, Anda dapat menggunakan parameter tunggal alih-alih beberapa parameter yang berbeda untuk menentukan beberapa nilai. Misalnya, jika Anda membuat tiga subnet yang berbeda dengan blok CIDR mereka sendiri, Anda bisa menggunakan tiga parameter yang berbeda untuk menentukan tiga blok CIDR yang berbeda. Tapi itu lebih sederhana hanya untuk menggunakan satu parameter yang mengambil daftar tiga blok CIDR, seperti yang ditunjukkan dalam potongan berikut:
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, gunakan Fn::Select
fungsi intrinsik dalam Resources
bagian dari template Anda. Anda melewati nilai indeks objek yang Anda inginkan dan daftar objek, seperti yang ditunjukkan dalam potongan berikut:
JSON
"DbSubnet1" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "0", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "0", {"Ref" : "DbSubnetIpBlocks"} ] } } }, "DbSubnet2" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "1", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "1", {"Ref" : "DbSubnetIpBlocks"} ] } } }, "DbSubnet3" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "2", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "2", {"Ref" : "DbSubnetIpBlocks"} ] } } }
YAML
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]
Tipe parameter SSM
AWS::SSM::Parameter::Value
<String>jenis
Templat berikut menyatakan sebuah AWS::SSM::Parameter::Value<String>
tipe parameter.
JSON
{ "Parameters": { "InstanceType": { "Type": "AWS::SSM::Parameter::Value<String>" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "InstanceType": { "Ref": "InstanceType" } } } } }
YAML
Parameters: InstanceType: Type: 'AWS::SSM::Parameter::Value<String>' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: InstanceType: !Ref InstanceType
Perintah berikut membuat tumpukan berdasarkan contoh templat. Ini menyediakan kunci parameter Systems Manager (myInstanceType
) sebagai nilai untuk parameter InstanceType
template. Ini mengasumsikan bahwa myInstanceType
parameter ada di Penyimpanan Parameter di bagian pemanggil AWS
akun.
aws cloudformation create-stack --stack-name S1 --template-body
example template
--parameters ParameterKey=InstanceType,ParameterValue=myInstanceType
AWS::SSM::Parameter::Value
<AWS::EC2::Image::Id
> tipe
Templat berikut menyatakan sebuah AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>
tipe parameter.
JSON
{ "Parameters": { "ImageId": { "Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": { "Ref": "ImageId" } } } } }
YAML
Parameters: ImageId: Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: !Ref ImageId
Perintah berikut membuat tumpukan berdasarkan contoh templat. Ini menyediakan kunci parameter Systems Manager (myLatestAMI
) sebagai nilai untuk parameter ImageId
template. Ini mengasumsikan bahwa myLatestAMI
parameter ada di Parameter Store di bawah akun pemanggil. AWS
aws cloudformation create-stack --stack-name S2 --template-body
example template
--parameters ParameterKey=ImageId,ParameterValue=myLatestAMI