Parameter - AWS CloudFormation

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 dan Outputs 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 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 YAMAL dan ingin menggunakan Yes dan No 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 di Metadata bagian ini. Untuk informasi selengkapnya, lihat Metadata.

  • Bagian Outputs template. Untuk informasi selengkapnya, lihat Output.

  • MetadataAtribut 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", 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-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, sepertivol-3cdd3f56.

AWS::EC2::VPC::Id

ID VPC, seperti vpc-a123baa3.

AWS::Route53::HostedZone::Id

ID zona yang dihosting Amazon Route 53, sepertiZ23YXV4OVPL04A.

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, sepertivol-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, sepertiZ23YXV4OVPL04A, 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-stacksatau 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 untuk update-stackmemberitahu 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 atau ssm-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>> atau AWS::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. NoEchoProperti 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