Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat nest tumpukan yang ada
Gunakan fitur resource import
untuk membuat nest tumpukan yang ada dalam tumpukan lain yang ada. Tumpukan bersarang adalah komponen umum yang Anda nyatakan dan referensikan dari dalam templat lain. Dengan begitu, Anda dapat menghindari menyalin dan menempelkan konfigurasi yang sama ke dalam templat dan menyederhanakan pembaruan tumpukan. Jika Anda memiliki templat untuk komponen umum, Anda dapat menggunakan sumber daya AWS::CloudFormation::Stack
untuk mereferensikan templat ini dari dalam template lain. Untuk informasi selengkapnya tentang tumpukan bersarang, lihat Sematkan tumpukan di dalam tumpukan lain menggunakan tumpukan bersarang.
AWS CloudFormation hanya mendukung satu tingkat penggunaan resource import
bersarang. Ini berarti Anda tidak dapat mengimpor tumpukan ke tumpukan anak atau mengimpor tumpukan yang memiliki anak.
Jika Anda baru mengimpor, kami sarankan Anda terlebih dahulu meninjau informasi pengantar dalam topik. Impor AWS sumber daya ke CloudFormation tumpukan dengan impor sumber daya
Validasi impor tumpukan bersarang
Selama operasi impor tumpukan bersarang, AWS CloudFormation lakukan validasi berikut.
-
Definisi
AWS::CloudFormation::Stack
bersarang dalam templat tumpukan induk sesuai dengan templat tumpukan bersarang yang sebenarnya. -
Tanda untuk definisi
AWS::CloudFormation::Stack
bersarang dalam templat tumpukan induk sesuai dengan tanda untuk sumber daya tumpukan bersarang yang sebenarnya.
Membuat nest tumpukan yang ada menggunakan AWS Management Console
-
Tambahkan
AWS::CloudFormation::Stack
sumber daya ke template tumpukan induk dengan fileRetain
DeletionPolicy. Dalam contoh berikut template tumpukan induk,MyNestedStack
adalah target impor.JSON
{ "AWSTemplateFormatVersion" : "2010-09-09", "Resources" : { "ServiceTable":{ "Type":"AWS::DynamoDB::Table", "Properties":{ "TableName":"Service", "AttributeDefinitions":[ { "AttributeName":"key", "AttributeType":"S" } ], "KeySchema":[ { "AttributeName":"key", "KeyType":"HASH" } ], "ProvisionedThroughput":{ "ReadCapacityUnits":5, "WriteCapacityUnits":1 } } }, "MyNestedStack" : { "Type" : "AWS::CloudFormation::Stack", "DeletionPolicy": "Retain", "Properties" : { "TemplateURL" : "
https://s3.amazonaws.com/cloudformation-templates-us-east-2/EC2ChooseAMI.template
","Parameters" : { "InstanceType" : "t1.micro", "KeyName" : "mykey"
} } } } }YAML
AWSTemplateFormatVersion: 2010-09-09 Resources: ServiceTable: Type: 'AWS::DynamoDB::Table' Properties: TableName: Service AttributeDefinitions: - AttributeName: key AttributeType: S KeySchema: - AttributeName: key KeyType: HASH ProvisionedThroughput: ReadCapacityUnits: 5 WriteCapacityUnits: 1 MyNestedStack: Type: 'AWS::CloudFormation::Stack' DeletionPolicy: Retain Properties: TemplateURL: >-
https://s3.amazonaws.com/cloudformation-templates-us-east-2/EC2ChooseAMI.template
Parameters: InstanceType: t1.micro KeyName: mykey
-
Buka AWS CloudFormation konsol.
-
Di halaman Tumpukan, dengan tumpukan induk yang dipilih, pilih Tindakan tumpukan, lalu pilih Impor sumber daya ke tumpukan.
-
Baca halaman Gambaran umum Impor untuk daftar hal yang harus Anda sediakan selama operasi ini. Kemudian, pilih Selanjutnya.
-
Di halaman Tentukan templat, sediakan templat Anda yang telah diperbarui menggunakan salah satu metode berikut, lalu pilih Selanjutnya.
-
Pilih URL Amazon S3, lalu tentukan URL untuk templat Anda di kotak teks.
-
Pilih Unggah file templat, lalu telusuri templat Anda.
-
-
Di halaman Identifikasi sumber daya, identifikasi setiap sumber daya
AWS::CloudFormation::Stack
.-
Di bawah Properti pengidentifikasi, pilih jenis pengidentifikasi sumber daya. Misalnya, sumber daya
AWS::CloudFormation::Stack
dapat diidentifikasi menggunakan propertiStackId
. -
Di bawah nilai Identifier, ketik ARN dari tumpukan yang Anda impor. Misalnya,
.arn:aws:cloudformation:us-west-2:12345678910:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10
-
Pilih Berikutnya.
-
-
Di halaman Tentukan detail tumpukan, ubah parameter apa pun, lalu pilih Selanjutnya. Ini secara otomatis membuat set perubahan.
penting
Operasi impor gagal jika Anda mengubah parameter yang sudah ada yang memulai operasi membuat, memperbarui, atau menghapus.
-
Pada
MyParentStack
halaman Tinjauan, konfirmasikan bahwa sumber daya yang benar sedang diimpor, lalu pilih Impor sumber daya. Ini secara otomatis menjalankan set perubahan yang dibuat pada langkah terakhir. Semua tanda stack-level diterapkan pada sumber daya yang diimpor saat ini. -
Panel Peristiwa di halaman Detail tumpukan menampilkan tumpukan induk Anda.
catatan
Tidak perlu menjalankan deteksi drift pada tumpukan induk setelah operasi impor ini karena
AWS::CloudFormation::Stack
sumber daya sudah dikelola oleh AWS CloudFormation.
Membuat nest tumpukan yang ada menggunakan AWS CLI
-
Tambahkan
AWS::CloudFormation::Stack
sumber daya ke template tumpukan induk dengan fileRetain
DeletionPolicy. Dalam contoh templat induk berikut,MyNestedStack
adalah target impor.JSON
{ "AWSTemplateFormatVersion" : "2010-09-09", "Resources" : { "ServiceTable":{ "Type":"AWS::DynamoDB::Table", "Properties":{ "TableName":"Service", "AttributeDefinitions":[ { "AttributeName":"key", "AttributeType":"S" } ], "KeySchema":[ { "AttributeName":"key", "KeyType":"HASH" } ], "ProvisionedThroughput":{ "ReadCapacityUnits":5, "WriteCapacityUnits":1 } } }, "
MyNestedStack
" : { "Type" : "AWS::CloudFormation::Stack", "DeletionPolicy": "Retain", "Properties" : { "TemplateURL" : "https://s3.amazonaws.com/cloudformation-templates-us-east-2/EC2ChooseAMI.template
","Parameters" : { "InstanceType" : "t1.micro", "KeyName" : "mykey"
} } } } }YAML
AWSTemplateFormatVersion: 2010-09-09 Resources: ServiceTable: Type: 'AWS::DynamoDB::Table' Properties: TableName: Service AttributeDefinitions: - AttributeName: key AttributeType: S KeySchema: - AttributeName: key KeyType: HASH ProvisionedThroughput: ReadCapacityUnits: 5 WriteCapacityUnits: 1
MyNestedStack
: Type: 'AWS::CloudFormation::Stack' DeletionPolicy: Retain Properties: TemplateURL: >-https://s3.amazonaws.com/cloudformation-templates-us-east-2/EC2ChooseAMI.template
Parameters: InstanceType: t1.micro KeyName: mykey
-
Tulis string JSON seperti yang ditunjukkan pada contoh berikut, dengan modifikasi ini:
-
Ganti
MyNestedStack
dengan ID logis dari sumber daya target seperti yang ditentukan dalam template. -
Ganti
arn:aws:cloudformation:us-west-2:12345678910:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10
dengan ARN dari tumpukan yang ingin Anda impor.
[{"ResourceType":"AWS::CloudFormation::Stack","LogicalResourceId":"
MyNestedStack
","ResourceIdentifier":{"StackId":"arn:aws:cloudformation:us-east-2:123456789012:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10
"}}]Atau, Anda dapat menentukan parameter dalam file konfigurasi.
Misalnya, untuk mengimpor
MyNestedStack
, Anda dapat membuatResourcesToImport.txt
file yang berisi konfigurasi berikut.JSON
[ { "ResourceType":"AWS::CloudFormation::Stack", "LogicalResourceId":"
MyNestedStack
", "ResourceIdentifier": { "StackId":"arn:aws:cloudformation:us-west-2:12345678910:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10
" } } ]YAML
ResourceType: 'AWS::CloudFormation::Stack' LogicalResourceId:
MyNestedStack
ResourceIdentifier: StackId: >-arn:aws:cloudformation:us-west-2:12345678910:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10
-
-
Untuk membuat set perubahan, gunakan create-change-set perintah berikut dan ganti teks placeholder. Untuk
--change-set-type
opsi, tentukan nilaiIMPORT
. Untuk--resources-to-import
opsi, ganti string JSON sampel dengan string JSON aktual yang baru saja Anda buat.aws cloudformation create-change-set \ --stack-name
MyParentStack
--change-set-nameImportChangeSet
\ --change-set-typeIMPORT
\ --template-bodyfile://TemplateToImport.json
\ --resources-to-import'[{"ResourceType":"AWS::CloudFormation::Stack","LogicalResourceId":"MyNestedStack","ResourceIdentifier":{"StackId":"arn:aws:cloudformation:us-west-2:12345678910:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10"}}]'
catatan
--resources-to-import
tidak mendukung YAMAL sebaris. Persyaratan untuk menghindari tanda kutip dalam string JSON bervariasi tergantung pada terminal Anda. Untuk informasi selengkapnya, lihat Menggunakan tanda kutip di dalam string di AWS Command Line Interface Panduan Pengguna.Atau, Anda dapat menggunakan URL file sebagai masukan untuk
--resources-to-import
opsi, seperti yang ditunjukkan pada contoh berikut.--resources-to-import
file://ResourcesToImport.txt
Jika berhasil, perintah ini mengembalikan output sampel berikut.
{ "Id": "arn:aws:cloudformation:us-west-2:12345678910:changeSet/ImportChangeSet/8ad75b3f-665f-46f6-a200-0b4727a9442e", "StackId": "arn:aws:cloudformation:us-west-2:12345678910:stack/MyParentStack/4e345b70-1281-11ef-b027-027366d8e82b" }
-
Tinjau set perubahan untuk memastikan tumpukan yang benar sedang diimpor.
aws cloudformation describe-change-set --change-set-name
ImportChangeSet
-
Untuk memulai set perubahan dan mengimpor tumpukan ke tumpukan induk sumber, gunakan execute-change-set perintah berikut dan ganti teks placeholder. Semua tanda stack-level diterapkan pada sumber daya yang diimpor saat ini. Setelah berhasil menyelesaikan operasi impor
(IMPORT_COMPLETE)
, tumpukan berhasil dibuat nest-nya.aws cloudformation execute-change-set --change-set-name
ImportChangeSet
catatan
Tidak perlu menjalankan deteksi penyimpangan pada tumpukan induk setelah operasi impor ini karena sumber daya
AWS::CloudFormation::Stack
telah dikelola oleh AWS CloudFormation.