Jenis parameter Systems Manager - AWS CloudFormation

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Jenis parameter Systems Manager

Jenis parameter Systems Manager 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. Ini dapat berguna, misalnya, ketika Anda perlu sering memperbarui sumber daya aplikasi Anda dengan mengubah nilai, seperti Amazon Machine Image (AMI)IDs.

Anda dapat melihat nilai yang diselesaikan untuk parameter Systems Manager pada tab Parameter tumpukan 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.

Karena nilai tipe parameter Systems Manager adalah kunci parameter, Anda harus mengetahui perilaku berikut:

  • Untuk pembaruan tumpukan, opsi Gunakan nilai yang ada di konsol dan UsePreviousValue atribut untuk update-stackmemberitahu CloudFormation untuk menggunakan kunci parameter Systems Manager yang ada—bukan nilainya. CloudFormation selalu mengambil nilai terbaru dari Parameter Store saat memperbarui tumpukan.

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

Saat Anda membuat atau memperbarui tumpukan dan membuat set perubahan, CloudFormation gunakan nilai apa pun yang ada di Parameter Store pada saat operasi dijalankan. Jika parameter tertentu tidak ada di Parameter Store di bawah pemanggil Akun AWS, CloudFormation mengembalikan kesalahan validasi.

Ketika Anda menjalankan set perubahan, 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.

Untuk informasi tentang Parameter Store, lihat Systems Manager Parameter Store.

catatan

Untuk parameter Parameter Store yang disimpan dalam hal yang sama Akun AWS, Anda harus memberikan nama parameter. Untuk parameter Parameter Store yang dibagikan oleh yang lain Akun AWS, Anda harus memberikan parameter lengkapARN.

Jenis parameter Systems Manager yang Didukung

CloudFormation mendukung jenis parameter Systems Manager 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 Systems Manager yang tidak didukung

CloudFormation tidak mendukung tipe parameter Systems Manager berikut:

  • Daftar tipe parameter Systems Manager — misalnya: List<AWS::SSM::Parameter::Value<String>>

Selain itu, CloudFormation tidak mendukung mendefinisikan parameter template sebagai tipe parameter SecureString Systems Manager. Namun, Anda dapat menentukan string aman sebagai nilai parameter untuk sumber daya tertentu. Untuk informasi selengkapnya, lihat Tentukan nilai yang disimpan di layanan lain menggunakan referensi dinamis.

Contoh

AMIID yang mereferensikan parameter publik Systems Manager sebagai nilai default

<AWS::EC2::Image::Id>Jenis ini khusus untuk parameter AMI ID dan mendukung parameter publik yang disediakan oleh AWS.

Contoh berikut mendeklarasikan parameter bernama LatestAmiId tipeAWS::SSM::Parameter::Value<AWS::EC2::Image::Id>. Secara default, ImageId properti referensi EC2 instance/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2. Parameter publik ini adalah alias untuk nilai AMI ID regional untuk Amazon Linux 2 AMI terbaru. Untuk informasi selengkapnya tentang parameter publik, lihat Menemukan parameter publik di Panduan AWS Systems Manager Pengguna.

JSON

{ "Parameters": { "LatestAmiId": { "Description": "Region specific image from the Parameter Store", "Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>", "Default": "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": { "Ref": "LatestAmiId" } } } } }

YAML

Parameters: LatestAmiId: Description: Region specific image from the Parameter Store Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>' Default: '/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: !Ref LatestAmiId

AMIID yang mereferensikan parameter Systems Manager dan tidak ada nilai default

Contoh berikut mendeklarasikan parameter bernama ImageId tipe AWS::SSM::Parameter::Value<AWS::EC2::Image::Id> tanpa nilai default. Ini berarti Anda harus memberikan kunci parameter Systems Manager yang mereferensikan AMI ID yang diinginkan saat membuat tumpukan.

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 pemanggil. Akun AWS

aws cloudformation create-stack --stack-name S2 --template-body example template \ --parameters ParameterKey=ImageId,ParameterValue=myLatestAMI

Mereferensikan parameter string Systems Manager

Contoh berikut mendeklarasikan parameter bernama InstanceType tipeAWS::SSM::Parameter::Value<String>. Karena tidak ada nilai default, Anda harus memberikan kunci parameter Systems Manager yang mereferensikan jenis instance yang diinginkan saat membuat tumpukan.

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 Parameter Store di bawah pemanggil. Akun AWS

aws cloudformation create-stack --stack-name S1 --template-body example template \ --parameters ParameterKey=InstanceType,ParameterValue=myInstanceType