Pilih cara menangani kegagalan saat menyediakan sumber daya - AWS CloudFormation

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

Pilih cara menangani kegagalan saat menyediakan sumber daya

Jika operasi tumpukan Anda gagal, Anda tidak perlu memutar kembali sumber daya yang sudah berhasil disediakan dan memulai kembali dari awal setiap saat. Sebagai gantinya, Anda dapat memecahkan masalah sumber daya dalam UPDATE_FAILED status CREATE_FAILED atau, lalu melanjutkan penyediaan dari titik di mana masalah terjadi.

Untuk melakukan ini, Anda harus mengaktifkan opsi mempertahankan sumber daya yang berhasil disediakan. Opsi ini tersedia untuk semua penerapan tumpukan dan operasi set perubahan.

  • Untuk pembuatan tumpukan, jika Anda memilih opsi Pertahankan sumber daya yang berhasil disediakan, CloudFormation mempertahankan status sumber daya yang berhasil dibuat dan membiarkan yang gagal dalam status gagal hingga operasi pembaruan berikutnya dilakukan.

  • Selama operasi set pembaruan dan perubahan, memilih Pertahankan sumber daya yang berhasil disediakan mempertahankan status sumber daya yang berhasil sambil mengembalikan sumber daya yang gagal ke status stabil terakhir yang diketahui. Sumber daya yang gagal akan berada dalam UPDATE_FAILED keadaan. Sumber daya tanpa status stabil terakhir yang diketahui akan dihapus pada operasi tumpukan berikutnya.

Ikhtisar opsi kegagalan tumpukan

Sebelum mengeluarkan operasi dari CloudFormation konsol,, atau API AWS CLI, tentukan perilaku kegagalan sumber daya yang disediakan. Kemudian, lanjutkan dengan proses penyebaran sumber daya Anda tanpa modifikasi lainnya. Jika terjadi kegagalan operasional, CloudFormation berhenti pada kegagalan pertama di setiap jalur penyediaan independen. CloudFormation mengidentifikasi dependensi antara sumber daya untuk memparalelkan tindakan penyediaan independen. Kemudian ia melanjutkan untuk menyediakan sumber daya pada setiap jalur penyediaan independen sampai mengalami kegagalan. Kegagalan di satu jalur tidak memengaruhi jalur penyediaan lainnya. CloudFormation akan terus menyediakan sumber daya sampai selesai atau berhenti pada kegagalan yang berbeda.

Memperbaiki masalah apa pun untuk melanjutkan proses penerapan. CloudFormation melakukan pembaruan yang diperlukan sebelum mencoba kembali tindakan penyediaan pada sumber daya yang tidak dapat berhasil disediakan sebelumnya. Anda memulihkan masalah dengan mengirimkan operasi Coba Ulang, Perbarui, atau Gulung kembali. Misalnya, jika Anda menyediakan instans Amazon dan EC2 instans gagal selama operasi pembuatan, Anda mungkin ingin menyelidiki kesalahan tersebut, daripada segera mengembalikan sumber daya yang gagal. EC2 Anda dapat meninjau pemeriksaan status sistem dan pemeriksaan status instance, lalu pilih operasi Coba lagi setelah masalah teratasi.

Ketika operasi tumpukan gagal, dan Anda telah menentukan Pertahankan sumber daya yang berhasil disediakan dari menu opsi kegagalan Stack, Anda dapat memilih opsi berikut.

  • Coba lagi — Mencoba lagi operasi penyediaan pada sumber daya yang gagal dan terus menyediakan template hingga berhasil menyelesaikan operasi tumpukan atau kegagalan berikutnya. Pilih opsi ini jika sumber daya gagal disediakan karena masalah yang tidak memerlukan modifikasi templat, seperti izin AWS Identity and Access Management (IAM).

  • Update - Sumber daya yang telah disediakan diperbarui pada pembaruan template. Sumber daya yang gagal dibuat atau diperbarui akan dicoba lagi. Pilih opsi ini jika sumber daya gagal disediakan karena kesalahan templat, dan Anda telah memodifikasi templat. Saat memperbarui tumpukan yang berada dalam FAILED status, Anda harus memilih Pertahankan sumber daya yang berhasil disediakan untuk opsi kegagalan Stack untuk terus memperbarui tumpukan Anda.

  • Gulung kembali — CloudFormation memutar kembali tumpukan ke keadaan stabil terakhir yang diketahui.

Kondisi yang diperlukan untuk menjeda stack rollback

Untuk CloudFormation mencegah agar tidak secara otomatis memutar kembali dan menghapus sumber daya yang berhasil dibuat, kondisi berikut harus dipenuhi.

  1. Saat Anda membuat atau memperbarui tumpukan, Anda harus memilih opsi untuk Mempertahankan sumber daya yang berhasil disediakan. Ini memberi tahu untuk CloudFormation tidak menghapus sumber daya yang berhasil dibuat, bahkan jika operasi tumpukan keseluruhan gagal.

  2. Operasi tumpukan pasti gagal, artinya status tumpukan adalah salah satu CREATE_FAILED atauUPDATE_FAILED.

catatan

Jenis pembaruan yang tidak dapat diubah tidak didukung.

Pertahankan sumber daya yang berhasil disediakan (konsol)

Create stack
Untuk mempertahankan sumber daya yang berhasil disediakan selama operasi create stack
  1. Masuk ke AWS Management Console dan buka AWS CloudFormation konsol di https://console.aws.amazon.com/cloudformation.

  2. Pilih Buat tumpukan dan pilih Dengan sumber daya baru (standar).

  3. Di halaman Tentukan templat, pilih templat tumpukan dengan menggunakan salah satu opsi berikut:

    • Template siap

    • Gunakan contoh template

    • Membangun dari Komposer Infrastruktur

    Terima pengaturan Anda dan pilih Berikutnya.

  4. Pada halaman Tentukan detail tumpukan, masukkan nama tumpukan di kotak Nama tumpukan.

  5. Di bagian Parameter, tentukan parameter yang ditentukan dalam template tumpukan Anda.

    Anda dapat menggunakan atau mengubah parameter dengan nilai default.

  6. Bila Anda puas dengan nilai parameter, pilih Berikutnya.

  7. Pada halaman Configure stack options, Anda dapat mengatur opsi tambahan untuk tumpukan Anda.

  8. Untuk opsi kegagalan Stack, pilih Pertahankan sumber daya yang berhasil disediakan.

  9. Ketika Anda puas dengan opsi tumpukan, pilih Berikutnya.

  10. Tinjau tumpukan Anda di halaman Ulasan dan pilih Buat tumpukan.

Hasil: Sumber daya yang gagal membuat transisi status tumpukan CREATE_FAILED untuk mencegah tumpukan berputar kembali saat operasi tumpukan mengalami kegagalan. Sumber daya yang berhasil disediakan berada dalam keadaan. CREATE_COMPLETE Anda dapat memantau tumpukan di tab Stack events.

Update stack
Untuk mempertahankan sumber daya yang berhasil disediakan selama operasi tumpukan pembaruan
  1. Masuk ke AWS Management Console dan buka AWS CloudFormation konsol di https://console.aws.amazon.com/cloudformation.

  2. Pilih tumpukan yang ingin Anda perbarui dan kemudian pilih Perbarui.

  3. Pada halaman Update stack, pilih template stack dengan menggunakan salah satu opsi berikut:

    • Gunakan template saat ini

    • Ganti template saat ini

    • Edit template di Komposer Infrastruktur

    Terima pengaturan Anda dan pilih Berikutnya.

  4. Pada halaman Tentukan detail tumpukan, tentukan parameter yang ditentukan dalam template tumpukan Anda.

    Anda dapat menggunakan atau mengubah parameter dengan nilai default.

  5. Bila Anda puas dengan nilai parameter, pilih Berikutnya.

  6. Pada halaman Configure stack options, Anda dapat mengatur opsi tambahan untuk tumpukan Anda.

  7. Untuk kegagalan perilaku penyediaan, pilih Pertahankan sumber daya yang berhasil disediakan.

  8. Ketika Anda puas dengan opsi tumpukan, pilih Berikutnya.

  9. Tinjau tumpukan Anda di halaman Ulasan dan pilih Perbarui tumpukan.

Hasil: Sumber daya yang gagal memperbarui mentransisikan status tumpukan ke UPDATE_FAILED dan memutar kembali ke status stabil terakhir yang diketahui. Sumber daya tanpa status stabil terakhir yang diketahui akan dihapus CloudFormation pada operasi tumpukan berikutnya. Sumber daya yang berhasil disediakan berada dalam keadaan CREATE_COMPLETE atauUPDATE_COMPLETE. Anda dapat memantau tumpukan di tab Stack events.

Change set
catatan

Anda dapat memulai set perubahan untuk tumpukan dengan status CREATE_FAILED atauUPDATE_FAILED, tetapi tidak untuk status. UPDATE_ROLLBACK_FAILED

Untuk Mempertahankan sumber daya yang berhasil disediakan selama operasi set perubahan
  1. Masuk ke AWS Management Console dan buka AWS CloudFormation konsol di https://console.aws.amazon.com/cloudformation.

  2. Pilih tumpukan yang berisi set perubahan yang ingin Anda mulai, lalu pilih tab Ubah set.

  3. Pilih set perubahan dan kemudian pilih Execute.

  4. Untuk Jalankan set perubahan, pilih opsi Pertahankan sumber daya yang berhasil disediakan.

  5. Pilih Jalankan set perubahan.

Hasil: Sumber daya yang gagal memperbarui mentransisikan status tumpukan ke UPDATE_FAILED dan memutar kembali ke status stabil terakhir yang diketahui. Sumber daya tanpa status stabil terakhir yang diketahui akan dihapus CloudFormation pada operasi tumpukan berikutnya. Sumber daya yang berhasil disediakan berada dalam keadaan CREATE_COMPLETE atauUPDATE_COMPLETE. Anda dapat memantau tumpukan di tab Stack events.

Pertahankan sumber daya yang berhasil disediakan ()AWS CLI

Create stack
Untuk mempertahankan sumber daya yang berhasil disediakan selama operasi pembuatan tumpukan

Tentukan --disable-rollback opsi atau on-failure DO_NOTHING enumerasi selama operasi create-stack.

  1. Berikan nama tumpukan dan templat ke create-stack perintah dengan --disable-rollback opsi.

    aws cloudformation create-stack --stack-name myteststack \ --template-body file://template.yaml \ --disable-rollback

    Perintah mengembalikan output berikut.

    {     "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }
  2. Jelaskan status tumpukan menggunakan describe-stacks perintah.

    aws cloudformation describe-stacks --stack-name myteststack

    Perintah mengembalikan output berikut.

    {     "Stacks":  [         {             "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896",             "Description": "AWS CloudFormation Sample Template",             "Tags": [],             "Outputs": [],             "StackStatusReason": “The following resource(s) failed to create: [MyBucket]”,             "CreationTime": "2013-08-23T01:02:15.422Z",             "Capabilities": [],             "StackName": "myteststack",             "StackStatus": "CREATE_FAILED",             "DisableRollback": true         }     ] }
Update stack
Untuk mempertahankan sumber daya yang berhasil disediakan selama operasi pembaruan tumpukan
  1. Berikan nama tumpukan dan templat yang ada ke update-stack perintah dengan --disable-rollback opsi.

    aws cloudformation update-stack --stack-name myteststack \ --template-url https://s3.amazonaws.com/amzn-s3-demo-bucket/updated.template --disable-rollback

    Perintah mengembalikan output berikut.

    {     "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }
  2. Jelaskan status tumpukan menggunakan describe-stack-events perintah describe-stacks atau.

    aws cloudformation describe-stacks --stack-name myteststack

    Perintah mengembalikan output berikut.

    { "Stacks":  [         {             "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896",             "Description": "AWS CloudFormation Sample Template",             "Tags": [],             "Outputs": [],             "CreationTime": "2013-08-23T01:02:15.422Z",             "Capabilities": [],             "StackName": "myteststack",             "StackStatus": "UPDATE_COMPLETE",             "DisableRollback": true         }     ] }
Change set
catatan

Anda dapat memulai set perubahan untuk tumpukan dengan status CREATE_FAILED atau UPDATE_FAILED tetapi tidak untuk status. UPDATE_ROLLBACK_FAILED

Untuk mempertahankan sumber daya yang berhasil disediakan selama operasi set perubahan

Tentukan --disable-rollback opsi selama execute-change-setoperasi.

  1. Berikan nama tumpukan dan templat ke execute-change-set perintah dengan --disable-rollback opsi.

    aws cloudformation execute-change-set --stack-name myteststack \ --change-set-name my-change-set --template-body file://template.yaml

    Perintah mengembalikan output berikut.

    {  "Id": "arn:aws:cloudformation:us-east-1:123456789012:changeSet/my-change-set/bc9555ba-a949-xmpl-bfb8-f41d04ec5784",  "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }
  2. Mulai set perubahan dengan --disable-rollback opsi.

    aws cloudformation execute-change-set --stack-name myteststack \ --change-set-name my-change-set -–disable-rollback
  3. Tentukan status tumpukan menggunakan describe-stack-events perintah describe-stacks atau.

    aws cloudformation describe-stack-events --stack-name myteststack

    Perintah mengembalikan output berikut.

    { "StackEvents": [ { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "EventId": "49c966a0-7b74-11ea-8071-024244bb0672", "StackName": "myteststack", "LogicalResourceId": " MyBucket", "PhysicalResourceId": "myteststack-MyBucket-abcdefghijk1", "ResourceType": "AWS::S3::Bucket", "Timestamp": "2020-04-10T21:43:17.015Z", "ResourceStatus": "UPDATE_FAILED" "ResourceStatusReason": "User XYZ is not allowed to perform S3::UpdateBucket on MyBucket" } }
  4. Perbaiki kesalahan izin dan coba lagi operasi.

    aws cloudformation update-stack --stack-name myteststack \ --use-previous-template --disable-rollback

    Perintah mengembalikan output berikut.

    {     "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }
  5. Jelaskan status tumpukan menggunakan describe-stack-events perintah describe-stacks atau.

    aws cloudformation describe-stacks --stack-name myteststack

    Perintah mengembalikan output berikut.

    {     "Stacks":  [         {             "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896",             "Description": "AWS CloudFormation Sample Template",             "Tags": [],             "Outputs": [],             "CreationTime": "2013-08-23T01:02:15.422Z",             "Capabilities": [],             "StackName": "myteststack",             "StackStatus": "UPDATE_COMPLETE",             "DisableRollback": true         }     ] }

Menggulung kembali tumpukan

Anda dapat menggunakan perintah rollback-stack untuk memutar kembali tumpukan dengan status tumpukan CREATE_FAILED atau UPDATE_FAILED tumpukan ke status stabil terakhirnya.

rollback-stackPerintah berikut memutar kembali tumpukan yang ditentukan.

aws cloudformation rollback-stack --stack-name myteststack

Perintah mengembalikan output berikut.

{ "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }
catatan

rollback-stackOperasi akan menghapus tumpukan jika tidak berisi status stabil terakhir yang diketahui.