Opsi kegagalan tumpukan - AWS CloudFormation

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

Opsi kegagalan tumpukan

Anda dapat mengembangkan aplikasi secara iteratif saat kegagalan penyediaan ditemui dengan memulai dari titik kegagalan tanpa mengembalikan sumber daya yang berhasil disediakan. Dengan menentukan opsi kegagalan tumpukan, Anda dapat memecahkan masalah sumber daya dalam status atauCREATE_FAILED. UPDATE_FAILED Anda dapat menyediakan opsi kegagalan untuk semua penerapan tumpukan dan mengubah operasi set.

  • Membuat operasi yang disetel ke Mempertahankan sumber daya yang berhasil disediakan mempertahankan status sumber daya yang berhasil, sementara sumber daya yang gagal akan tetap dalam keadaan gagal hingga operasi pembaruan berikutnya dilakukan.

  • Memperbarui dan mengubah operasi set yang disetel ke Mempertahankan 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.

Lihat bagian berikut untuk detail selengkapnya tentang menjeda rollback sumber daya yang gagal:

Ikhtisar opsi kegagalan tumpukan

Sebelum mengeluarkan operasi dari AWS CloudFormation konsol, API, atau 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 EC2 dan instans EC2 gagal selama operasi pembuatan, Anda mungkin ingin menyelidiki kesalahan tersebut, daripada segera mengembalikan sumber daya yang gagal. 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 untuk menjeda rollback stack

Untuk menjeda rollback sumber daya yang gagal di tumpukan Anda, kondisi berikut harus dipenuhi.

  • Anda harus menentukan parameter Pertahankan sumber daya yang berhasil disediakan selama operasi tumpukan. Untuk informasi selengkapnya tentang perilaku rollback, lihat. Mengatur opsi AWS CloudFormation tumpukan

  • Operasi tumpukan harus memiliki status tumpukan CREATE_FAILED atauUPDATE_FAILED. Untuk informasi tentang status tumpukan, lihatKode status tumpukan.

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 Application Composer

    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 Aplikasi

    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://DOC-EXAMPLE-BUCKET.json --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 DOC-EXAMPLE-BUCKET.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. Memulai 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.

    { "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": "MyBucket", "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
            }
        ]
    }

Gulung kembali tumpukan

Untuk memutar kembali tumpukan dari status tumpukan CREATE_FAILED atau UPDATE_FAILED

Gunakan rollback-stack perintah untuk memutar kembali tumpukan ke keadaan stabil terakhirnya.

  • Memulai rollback dengan rollback-stack perintah dan menentukan nama stack.

    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.