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 Pisahkan template menjadi potongan-potongan yang dapat digunakan kembali 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 secara manual
Validasi impor tumpukan bersarang
Selama operasi impor tumpukan bersarang, AWS CloudFormation lakukan validasi berikut.
-
Definisi
AWS::CloudFormation::Stackbersarang dalam templat tumpukan induk sesuai dengan templat tumpukan bersarang yang sebenarnya. -
Tanda untuk definisi
AWS::CloudFormation::Stackbersarang 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::Stacksumber daya ke template tumpukan induk dengan fileRetainDeletionPolicy. Dalam contoh berikut template tumpukan induk,MyNestedStackadalah 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.templateParameters: 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::Stackdapat 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
MyParentStackhalaman 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::Stacksumber daya sudah dikelola oleh AWS CloudFormation.
Membuat nest tumpukan yang ada menggunakan AWS CLI
-
Tambahkan
AWS::CloudFormation::Stacksumber daya ke template tumpukan induk dengan fileRetainDeletionPolicy. Dalam contoh templat induk berikut,MyNestedStackadalah 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: 1MyNestedStack: Type: 'AWS::CloudFormation::Stack' DeletionPolicy: Retain Properties: TemplateURL: >-https://s3.amazonaws.com/cloudformation-templates-us-east-2/EC2ChooseAMI.templateParameters: InstanceType: t1.micro KeyName: mykey -
Tulis string JSON seperti yang ditunjukkan pada contoh berikut, dengan modifikasi ini:
-
Ganti
MyNestedStackdengan 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-0a9cd3354c10dengan 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.txtfile 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:MyNestedStackResourceIdentifier: 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-typeopsi, tentukan nilaiIMPORT. Untuk--resources-to-importopsi, ganti string JSON sampel dengan string JSON aktual yang baru saja Anda buat.aws cloudformation create-change-set \ --stack-nameMyParentStack--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-importtidak 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-importopsi, seperti yang ditunjukkan pada contoh berikut.--resources-to-importfile://ResourcesToImport.txtJika 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-nameImportChangeSet -
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-nameImportChangeSetcatatan
Tidak perlu menjalankan deteksi penyimpangan pada tumpukan induk setelah operasi impor ini karena sumber daya
AWS::CloudFormation::Stacktelah dikelola oleh AWS CloudFormation.