

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

# Melakukan pembaruan kenari yang aman
<a name="performing-safe-canary-upgrades"></a>

CloudWatch pembaruan kenari aman sintetis memungkinkan Anda menguji pembaruan pada kenari yang ada sebelum menerapkan perubahan. Fitur ini membantu Anda memvalidasi kompatibilitas kenari dengan waktu berjalan baru dan perubahan konfigurasi lainnya seperti perubahan kode atau memori. Ini akan membantu meminimalkan potensi gangguan pemantauan yang disebabkan oleh pembaruan yang salah.

Dengan menggunakan pembaruan aman kenari pada pembaruan versi runtime, perubahan konfigurasi, dan modifikasi skrip kode, Anda dapat mengurangi risiko, mempertahankan pemantauan tanpa gangguan, memverifikasi perubahan sebelum melakukan, memperbarui, dan mengurangi waktu henti.

**Topics**
+ [Prasyarat](#performing-safe-canary-upgrades-prereq)
+ [Praktik terbaik](#performing-safe-canary-upgrades-best-practices)
+ [Menguji kenari menggunakan dry run](#performing-safe-canary-upgrades-getting-started)
+ [Batasan](#performing-safe-canary-upgrades-limitations)

## Prasyarat
<a name="performing-safe-canary-upgrades-prereq"></a>

Pastikan prekuisitnya lengkap.
+ AWS akun dengan izin CloudWatch sintetis
+ Canary yang ada pada versi runtime yang didukung (lihat runtime [Batasan](#performing-safe-canary-upgrades-limitations) yang kompatibel)
+ Sertakan runtime yang kompatibel saat melakukan dry run (lihat runtime [Batasan](#performing-safe-canary-upgrades-limitations) yang kompatibel)

## Praktik terbaik
<a name="performing-safe-canary-upgrades-best-practices"></a>

Berikut adalah beberapa praktik terbaik untuk diikuti saat melakukan kenari.
+ Jalankan dry run untuk memvalidasi pembaruan runtime
+ Lakukan dry run sebelum pembaruan produksi ke kenari
+ Tinjau log kenari dan artefak setelah lari kering
+ Gunakan dry run untuk memvalidasi dependensi dan kompatibilitas pustaka

## Menguji kenari menggunakan dry run
<a name="performing-safe-canary-upgrades-getting-started"></a>

Anda dapat menguji pembaruan kenari menggunakan opsi berikut:

 **Menggunakan alur kerja Edit Konsol Manajemen AWS** 

1. Pergi konsol CloudWatch sintetis.

1. Pilih kenari yang ingin Anda perbarui.

1. Dari menu **tarik-turun Tindakan**, pilih **Edit**.

   Perbarui kenari dengan perubahan yang ingin Anda uji. Misalnya, mengubah versi runtime atau mengedit kode skrip.

1. Di bawah **skrip Canary**, pilih **Mulai Jalankan Kering** untuk menguji dan melihat hasilnya segera atau pilih **Validasi dan simpan nanti** di bagian bawah halaman untuk memulai pengujian dan melihat hasilnya nanti di halaman Detail **Canary** Anda.

1. Setelah dry run berhasil, pilih **Kirim** untuk melakukan pembaruan kenari Anda.

 **Menggunakan Konsol Manajemen AWS untuk memperbarui kenari dalam batch** 

1. Pergi konsol CloudWatch sintetis.

1. Pilih halaman daftar **Synthetics**.

1. Pilih hingga lima kenari yang ingin Anda perbarui runtime.

1. Dari menu **tarik-turun Tindakan**, pilih **Perbarui Runtime**.

1. Pilih **Mulai dry run untuk runtime baru** untuk memulai dry run dan uji perubahan Anda sebelum pembaruan.

1. Pada halaman daftar **Synthetics**, Anda akan melihat teks di sebelah versi **Runtime** untuk kenari yang menampilkan kemajuan dry run (ini hanya ditampilkan untuk dry run yang melibatkan pembaruan runtime).

   Setelah dry run berhasil, Anda akan melihat teks **Initiate Update**.

1. Pilih **Initiate Update** untuk melakukan pembaruan runtime.

1. Jika dry run gagal, Anda akan melihat teks **gagal Update dry run**. Pilih teks untuk melihat tautan debug ke halaman detail kenari.

 **Menggunakan AWS CLI atau SDK** 

API memulai dry run untuk nama kenari yang disediakan `MyCanary` dan memperbarui versi runtime ke. `syn-nodejs-puppeteer-10.0`

```
aws synthetics start-canary-dry-run \
    --name MyCanary \
    --runtime-version syn-nodejs-puppeteer-10.0
      
      // Or if you wanted to update other configurations:

aws synthetics start-canary-dry-run \
    --name MyCanary \
    --execution-role-arn arn:aws:iam::123456789012:role/NewRole
```

API akan mengembalikan bagian `DryRunId` dalam file`DryRunConfigOutput`.

Panggil `GetCanary` dengan yang disediakan `DryRunId` untuk menerima konfigurasi dry run kenari dan bidang tambahan `DryRunConfig` yang berisi status dry run yang terdaftar sebagai. `LastDryRunExecutionStatus`

```
aws synthetics get-canary \
    --name MyCanary \
    --dry-run-id XXXX-XXXX-XXXX-XXXX
```

Untuk detail lebih lanjut, gunakan `GetCanaryRuns` dengan yang disediakan `DryRunId` untuk mengambil run dan informasi tambahan.

```
aws synthetics get-canary-runs \
    --name MyCanary \
    --dry-run-id XXXX-XXXX-XXXX-XXXX
```

Setelah dry run berhasil, Anda kemudian dapat menggunakan `UpdateCanary` dengan yang disediakan ` DryRunId` untuk melakukan perubahan Anda.

```
aws synthetics update-canary \
    --name MyCanary \
    --dry-run-id XXXX-XXXX-XXXX-XXXX
```

Ketika gagal karena alasan apa pun (hasil dari GetCanaryRuns akan memiliki detail), hasil dari `GetCanaryRuns` memiliki lokasi artefak yang berisi log untuk di-debug. Ketika tidak ada log, dry run gagal dibuat. Anda dapat memvalidasi dengan menggunakan` GetCanary`.

```
aws synthetics get-canary \
    --name MyCanary \
    --dry-run-id XXXX-XXXX-XXXX-XXXX
```

*Negara*, *StateReason*, dan * StateReasonCode*menampilkan status dry run.

 **Menggunakan CloudFormation** 

Dalam template Anda untuk Canary Synthetics, berikan bidang `DryRunAndUpdate` yang menerima nilai boolean atau. `true` `false`

ketika nilainya `true` setiap pembaruan mengeksekusi dry run untuk memvalidasi perubahan sebelum memperbarui kenari secara otomatis. Ketika dry run gagal, kenari tidak memperbarui dan gagal penerapan dan CloudFormation penerapan dengan alasan yang valid. Untuk men-debug masalah ini, gunakan konsol [AWS Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Troubleshoot.html) atau jika menggunakan API, gunakan `GetCanaryRuns` API, dan unduh file untuk meninjau `*-log.txt` eksekusi log canary untuk mengetahui kesalahan. `ArtifactS3Location` Setelah validasi, modifikasi CloudFormation template dan coba lagi penerapan atau gunakan API di atas untuk memvalidasi.

Ketika nilainya`false`, sintetis tidak akan menjalankan dry run untuk memvalidasi perubahan dan akan langsung melakukan pembaruan Anda.

Untuk informasi tentang pemecahan masalah kenari yang gagal, lihat. [Memecahkan masalah canary yang gagal](CloudWatch_Synthetics_Canaries_Troubleshoot.md)

Contoh template.

```
SyntheticsCanary:
    Type: 'AWS::Synthetics::Canary'
    Properties:
      Name: MyCanary
      RuntimeVersion: syn-nodejs-puppeteer-10.0
      Schedule: {Expression: 'rate(5 minutes)', DurationInSeconds: 3600}
      ...
      DryRunAndUpdate: true
```

## Batasan
<a name="performing-safe-canary-upgrades-limitations"></a>
+ Mendukung versi runtime - syn-nodejs-puppeteer -10.0 \$1, syn-nodejs-playwright -2.0 \$1, -5.1 \$1, dan syn-nodejs-3.0 \$1 syn-python-selenium
+ Anda hanya dapat menjalankan satu dry run per kenari pada satu waktu
+ Ketika dry run gagal, Anda tidak dapat memperbarui kenari
+ Dry run tidak dapat menguji perubahan bidang **Jadwal**

**catatan**  
Saat Anda memulai dry run dengan perubahan kode untuk kenari Playwright dan Anda ingin memperbarui kenari tanpa memberikan yang terkait`DryRunId`, Anda harus secara eksplisit menentukan parameter kode.