

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
<a name="stack-failure-options"></a>

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.

**Topics**
+ [Ikhtisar opsi kegagalan tumpukan](#stack-failure-options-overview)
+ [Kondisi yang diperlukan untuk menjeda stack rollback](#stack-failure-options-conditions)
+ [Pertahankan sumber daya yang berhasil disediakan (konsol)](#stack-failure-options-console)
+ [Pertahankan sumber daya yang berhasil disediakan ()AWS CLI](#stack-failure-options-cli)

## Ikhtisar opsi kegagalan tumpukan
<a name="stack-failure-options-overview"></a>

Sebelum mengeluarkan operasi dari 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 diselesaikan.

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
<a name="stack-failure-options-conditions"></a>

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.

1. Operasi tumpukan pasti gagal, artinya status tumpukan adalah salah satu `CREATE_FAILED` atau`UPDATE_FAILED`.

**catatan**  
Jenis pembaruan yang tidak dapat diubah tidak didukung.

## Pertahankan sumber daya yang berhasil disediakan (konsol)
<a name="stack-failure-options-console"></a>

------
#### [ Create stack ]

**Untuk mempertahankan sumber daya yang berhasil disediakan selama operasi create stack**

1. Masuk ke Konsol Manajemen AWS dan buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Dari halaman **Stacks**, pilih **Buat tumpukan** di kanan atas, lalu pilih **Dengan sumber daya baru (standar)**.

1. Untuk **Prasyarat - Siapkan template**, pilih **Pilih template yang ada**.

1. Dalam **Tentukan templat**, pilih untuk menentukan URL untuk bucket S3 yang berisi templat tumpukan Anda atau unggah file templat tumpukan. Lalu, pilih **Selanjutnya**.

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

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

   Anda dapat menggunakan atau mengubah parameter dengan nilai default.

1. Bila Anda puas dengan nilai parameter, pilih **Berikutnya**.

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

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

1. Ketika Anda puas dengan opsi tumpukan, pilih **Berikutnya**.

1. 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 Konsol Manajemen AWS dan buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Pilih tumpukan yang ingin Anda perbarui dan kemudian pilih **Perbarui**.

1. Pada halaman **Update stack**, pilih template stack dengan menggunakan salah satu opsi berikut:
   + **Gunakan template yang ada**
   + **Ganti template saat ini**
   + **Edit template di Infrastructure Composer**

   Terima pengaturan Anda dan pilih **Berikutnya**.

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

   Anda dapat menggunakan atau mengubah parameter dengan nilai default.

1. Bila Anda puas dengan nilai parameter, pilih **Berikutnya**.

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

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

1. Ketika Anda puas dengan opsi tumpukan, pilih **Berikutnya**.

1. 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` atau`UPDATE_COMPLETE`. Anda dapat memantau tumpukan di tab **Stack events**.

------
#### [ 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**

1. Masuk ke Konsol Manajemen AWS dan buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

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

1. Pilih set perubahan dan kemudian pilih **Execute**.

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

1. 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` atau`UPDATE_COMPLETE`. Anda dapat memantau tumpukan di tab **Stack events**.

------

## Pertahankan sumber daya yang berhasil disediakan ()AWS CLI
<a name="stack-failure-options-cli"></a>

------
#### [ 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.](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html)

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"
   }
   ```

1. 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"
   }
   ```

1. 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-set](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/execute-change-set.html)operasi.

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"
   }
   ```

1. Memulai set perubahan dengan `--disable-rollback` opsi.

   ```
   aws cloudformation execute-change-set --stack-name myteststack \
       --change-set-name my-change-set -–disable-rollback
   ```

1. 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"
        }
   }
   ```

1. 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"
   }
   ```

1. 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
<a name="roll-back-stack-cli"></a>

Anda dapat menggunakan perintah [rollback-stack](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/rollback-stack.html) untuk memutar kembali tumpukan dengan status tumpukan `CREATE_FAILED` atau `UPDATE_FAILED` tumpukan ke status stabil terakhirnya.

**rollback-stack**Perintah 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-stack**Operasi akan menghapus tumpukan jika tidak berisi status stabil terakhir yang diketahui.