

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

# Buat penerapan rilis kenari
<a name="create-canary-deployment"></a>

[Anda membuat penerapan rilis kenari saat menerapkan API dengan [pengaturan canary](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateDeployment.html#canarySettings) sebagai input tambahan untuk operasi pembuatan penerapan.](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateDeployment.html) 

Anda juga dapat membuat penerapan rilis kenari dari penerapan non-canary yang ada dengan membuat [https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html)permintaan untuk menambahkan pengaturan kenari di panggung.

Saat membuat penyebaran rilis non-canary, Anda dapat menentukan nama panggung yang tidak ada. API Gateway membuat satu jika tahap yang ditentukan tidak ada. Namun, Anda tidak dapat menentukan nama panggung yang tidak ada saat membuat penerapan rilis kenari. Anda akan mendapatkan kesalahan dan API Gateway tidak akan membuat penerapan rilis kenari apa pun. 

 Anda dapat membuat penerapan rilis canary di API Gateway menggunakan konsol API Gateway, the AWS CLI, atau SDK. AWS 

**Topics**
+ [Buat penerapan canary menggunakan konsol API Gateway](#create-canary-deployment-using-console)
+ [Buat penerapan kenari menggunakan AWS CLI](#create-canary-deployment-using-cli)

## Buat penerapan canary menggunakan konsol API Gateway
<a name="create-canary-deployment-using-console"></a>

Untuk menggunakan konsol API Gateway untuk membuat penerapan rilis canary, ikuti petunjuk di bawah ini:<a name="to-create-canary-release-on-new-deployment"></a>

**Untuk membuat penerapan rilis kenari awal**

1.  Masuk ke konsol API Gateway.

1.  Pilih REST API yang ada atau buat REST API baru.

1.  Di panel navigasi utama, pilih **Resources**, lalu pilih **Deploy API**. Ikuti petunjuk di layar di **Deploy API** untuk menerapkan API ke tahap baru. 

   Sejauh ini, Anda telah menerapkan API ke tahap rilis produksi. Selanjutnya, Anda mengonfigurasi pengaturan kenari di panggung dan, jika perlu, juga mengaktifkan caching, mengatur variabel tahap, atau mengonfigurasi eksekusi API atau log akses.

1.  **Untuk mengaktifkan caching API atau mengaitkan ACL AWS WAF web dengan stage, di bagian **Detail tahap**, pilih Edit.** Untuk informasi selengkapnya, lihat [Pengaturan cache untuk REST APIs di API Gateway](api-gateway-caching.md) atau [Untuk mengaitkan ACL AWS WAF web dengan tahap API Gateway API menggunakan konsol API Gateway](apigateway-control-access-aws-waf.md#apigateway-control-access-aws-waf-console).

1.  Untuk mengonfigurasi eksekusi atau mengakses logging, di bagian **Log dan penelusuran**, pilih **Edit** dan ikuti petunjuk di layar. Untuk informasi selengkapnya, lihat [Siapkan CloudWatch logging untuk REST APIs di API Gateway](set-up-logging.md).

1. Untuk mengatur variabel tahap, pilih tab **variabel Tahap** dan ikuti petunjuk di layar untuk menambah atau memodifikasi variabel tahap. Untuk informasi selengkapnya, lihat [Menggunakan variabel stage untuk REST API di API Gateway](stage-variables.md).

1.  Pilih tab **Canary**, lalu pilih **Create canary**. Anda mungkin perlu memilih tombol panah kanan untuk menampilkan tab **Canary**.

1.  Di bawah **pengaturan Canary**, untuk **Canary**, masukkan persentase permintaan yang akan dialihkan ke kenari.

1. Jika diinginkan, pilih **Cache tahap** untuk mengaktifkan caching untuk rilis kenari. Cache tidak tersedia untuk rilis canary sampai caching API diaktifkan.

1. Untuk mengganti variabel tahap yang ada, untuk **penggantian Canary**, masukkan nilai variabel tahap baru.

Setelah rilis canary diinisialisasi pada tahap penerapan, Anda mengubah API dan ingin menguji perubahannya. Anda dapat menerapkan ulang API ke tahap yang sama sehingga versi yang diperbarui dan versi dasar dapat diakses melalui tahap yang sama. Langkah-langkah berikut menjelaskan cara melakukannya. <a name="to-deploy-latest-api-to-canary-release"></a>

**Untuk menerapkan versi API terbaru ke kenari**

1.  Dengan setiap pembaruan API, pilih **Deploy API**.

1.  Di **Deploy API**, pilih tahap yang berisi kenari dari daftar dropdown **tahap Deployment**. 

1.  (Opsional) Masukkan deskripsi untuk deskripsi **Deployment**. 

1.  Pilih **Deploy** untuk mendorong versi API terbaru ke rilis canary.

1.  Jika diinginkan, konfigurasikan ulang pengaturan panggung, log, atau pengaturan kenari, seperti yang dijelaskan dalam. [Untuk membuat penerapan rilis kenari awal](#to-create-canary-release-on-new-deployment)

 Akibatnya, rilis kenari menunjuk ke versi terbaru sementara rilis produksi masih menunjuk ke versi awal API. [https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings) [https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#deploymentId](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#deploymentId) Di belakang layar, konsol memanggil [https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html).

## Buat penerapan kenari menggunakan AWS CLI
<a name="create-canary-deployment-using-cli"></a>

**Untuk membuat penyebaran kenari untuk tahap baru**

1. Gunakan perintah [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) berikut untuk membuat deployment dengan dua variabel tahap, tetapi tanpa canary:

   ```
   aws apigateway create-deployment \
       --variables sv0=val0,sv1=val1 \
       --rest-api-id abcd1234 \
       --stage-name 'prod'
   ```

   Outputnya akan terlihat seperti berikut:

   ```
   {
       "id": "du4ot1", 
       "createdDate": 1511379050
   }
   ```

1. Gunakan perintah [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) berikut untuk membuat penyebaran kenari di panggung: `prod`

   ```
   aws apigateway create-deployment \
       --rest-api-id abcd1234 \
       --canary-settings percentTraffic=10.5,stageVariableOverrides={sv1='val2',sv2='val3'},useStageCache=false \
       --stage-name 'prod'
   ```

   Outputnya akan terlihat seperti berikut:

   ```
   {
       "id": "a6rox0", 
       "createdDate": 1511379433
   }
   ```

   Penerapan yang dihasilkan `id` mengidentifikasi versi uji API untuk rilis canary. Akibatnya, tahap terkait diaktifkan kenari.

1. (Opsional) Gunakan perintah [get-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-stage.html) berikut untuk melihat representasi tahap:

   ```
   aws apigateway get-stage --rest-api-id acbd1234 --stage-name prod
   ```

   Berikut ini menunjukkan representasi dari `Stage` sebagai output dari perintah:

   ```
   {
       "stageName": "prod", 
       "variables": {
           "sv0": "val0", 
           "sv1": "val1"
       }, 
       "cacheClusterEnabled": false, 
       "cacheClusterStatus": "NOT_AVAILABLE", 
       "deploymentId": "du4ot1", 
       "lastUpdatedDate": 1511379433, 
       "createdDate": 1511379050, 
       "canarySettings": {
           "percentTraffic": 10.5, 
           "deploymentId": "a6rox0", 
           "useStageCache": false, 
           "stageVariableOverrides": {
               "sv2": "val3", 
               "sv1": "val2"
           }
       }, 
       "methodSettings": {}
   }
   ```

   Dalam contoh ini, versi dasar API akan menggunakan variabel tahap`{"sv0":val0", "sv1":val1"}`, sedangkan versi pengujian menggunakan variabel tahap`{"sv1":val2", "sv2":val3"}`. Baik rilis produksi dan rilis kenari menggunakan variabel tahap yang sama`sv1`, tetapi dengan nilai yang berbeda, `val1` dan`val2`, masing-masing. Variabel tahap `sv0` digunakan hanya dalam rilis produksi dan variabel tahap `sv2` digunakan dalam rilis kenari saja. 

Anda juga dapat membuat penerapan rilis kenari dari penerapan reguler yang ada dengan memperbarui tahapan untuk mengaktifkan kenari.

**Untuk membuat penerapan rilis kenari dari penerapan yang ada**

1. Gunakan perintah [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) untuk membuat deployment tanpa canary:

   ```
   aws apigateway create-deployment \
       --variables sv0=val0,sv1=val1 \  
       --rest-api-id abcd1234 \
       --stage-name 'beta'
   ```

1. Gunakan perintah [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) untuk memperbarui stage untuk mengaktifkan kenari:

   ```
   aws apigateway update-stage \
       --rest-api-id abcd1234 \
       --stage-name 'beta' \
       --patch-operations '[{
               "op": "replace",
               "value": "0.0",
               "path": "/canarySettings/percentTraffic"
           }, {
               "op": "copy",
               "from": "/canarySettings/stageVariableOverrides",
               "path": "/variables"
           }, {
               "op": "copy",
               "from": "/canarySettings/deploymentId",
               "path": "/deploymentId"
           }]'
   ```

   Outputnya akan terlihat seperti berikut:

   ```
   {
       "stageName": "beta", 
       "variables": {
           "sv0": "val0", 
           "sv1": "val1"
       }, 
       "cacheClusterEnabled": false, 
       "cacheClusterStatus": "NOT_AVAILABLE", 
       "deploymentId": "cifeiw", 
       "lastUpdatedDate": 1511381930, 
       "createdDate": 1511380879, 
       "canarySettings": {
           "percentTraffic": 10.5, 
           "deploymentId": "cifeiw", 
           "useStageCache": false, 
           "stageVariableOverrides": {
               "sv2": "val3", 
               "sv1": "val2"
           }
       }, 
       "methodSettings": {}
   }
   ```

   Karena Anda mengaktifkan canary pada versi API yang ada, baik production release (`Stage`) dan canary release (`canarySettings`) mengarah ke penerapan yang sama. Setelah Anda mengubah API dan menerapkannya ke tahap ini lagi, versi baru akan berada di rilis canary, sementara versi dasar tetap dalam rilis produksi. Ini dimanifestasikan dalam evolusi tahap ketika rilis `deploymentId` dalam kenari diperbarui ke penerapan baru `id` dan rilis produksi tetap tidak berubah. `deploymentId`