

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

# Membuat ulang pemetaan API menggunakan aturan perutean
<a name="rest-api-routing-rules-recreate-api-mapping"></a>

Anda dapat membuat ulang pemetaan API menggunakan aturan perutean. Untuk membuat ulang pemetaan API, pastikan untuk mengaktifkan striping jalur dasar. Ini mempertahankan perilaku pemetaan API. Untuk informasi selengkapnya, lihat [Lepaskan jalur dasar dengan kondisi jalur dasar](rest-api-routing-rules.md#rest-api-routing-rules-condition-path-split).

Tutorial berikut menunjukkan cara membuat ulang pemetaan API `https:// api.example.com/orders/v2/items/categories/5` sebagai aturan perutean dan cara memperbarui log akses Anda untuk mencatat aturan perutean ID API Gateway yang digunakan untuk mengirim lalu lintas ke API Anda.

------
#### [ Konsol Manajemen AWS ]

**Untuk mengatur mode perutean ke ROUTING\$1RULE\$1THEN\$1 API\$1MAPPING**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Pilih **Nama domain khusus** dari panel navigasi utama. 

1. Pilih nama domain kustom Anda.

1. Untuk **detail Domain**, pilih **Edit**.

1. Untuk **mode Routing**, pilih **API\$1MAPPINGROUTING\$1RULE\$1THEN\$1**.

1. Pilih **Simpan**. 

Setelah Anda mengatur mode routing, Anda membuat aturan routing.

**Untuk membuat aturan routing**

1. Pada tab **Routing details**, pilih **Add routing rule.**

1. Pilih **Tambahkan kondisi baru** dan kemudian pilih **Path**.

1. Untuk **Path**, masuk**orders/v2/items/categories/5**.

1. Untuk **jalur dasar Strip**, pilih **Aktif**.

1. Untuk **API Target**, pilih API target Anda.

1. Untuk **tahap Target**, pilih tahap target Anda.

1. Pilih **Berikutnya**.

1. Untuk prioritas, masukkan prioritas.

   Bahkan jika Anda mempertahankan pemetaan API yang ada, API Gateway akan selalu menggunakan aturan perutean baru karena aturan perutean selalu diprioritaskan daripada pemetaan API.

1. Pilih **Simpan perubahan**.

Setelah Anda membuat aturan perutean, perbarui format log akses untuk tahap Anda atau buat log baru untuk mengonfirmasi bahwa API Gateway menggunakan aturan perutean Anda untuk mengirim lalu lintas ke API Anda.

**Untuk memperbarui log akses Anda**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Pilih API Anda.

1. Di panel navigasi utama, pilih **Tahapan**.

1. Untuk **Log dan penelusuran**, pilih **Edit**.

   Jika Anda tidak memiliki grup log, lihat[Siapkan CloudWatch logging untuk REST APIs di API Gateway](set-up-logging.md).

1. Tambahkan **\$1context.customDomain.routingRuleIdMatched** ke format log Anda.

   Grup log ini mencatat ID aturan perutean yang digunakan API Gateway untuk mengirim lalu lintas ke API Anda. Untuk informasi selengkapnya, lihat [Saya tidak tahu bagaimana API Gateway mengirim lalu lintas ke saya APIs](rest-api-routing-rules-troubleshoot.md#rest-api-routing-rules-logging).

1. Pilih **Simpan**.

Setelah memperbarui log akses, panggil nama domain kustom Anda. Berikut ini adalah contoh perintah curl untuk memanggil nama domain kustom `https://api.example.com` dengan jalur dasar. `orders/v2/items/categories/5`

```
curl "https://api.example.com/orders/v2/items/categories/5"
```

Setelah Anda berhasil memanggil nama domain kustom Anda, konfirmasikan bahwa CloudWatch Log menunjukkan. `routingRuleIdMatched` Untuk mempelajari cara menggunakan konsol CloudWatch Log untuk melihat grup log, lihat[Melihat peristiwa log API Gateway di CloudWatch konsol](view-cloudwatch-log-events-in-cloudwatch-console.md).

------
#### [ AWS CLI ]

1. Gunakan [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/update-domain-name.html)perintah berikut untuk memperbarui nama domain `api.example.com` untuk menggunakan mode `ROUTING_RULE_THEN_API_MAPPING` routing.

   ```
   aws apigatewayv2 update-domain-name \
     --domain-name 'api.example.com' \
     --routing-mode ROUTING_RULE_THEN_API_MAPPING
   ```

1. Gunakan [create-routing-rule](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/create-routing-rule.html)perintah berikut untuk membuat aturan routing baru untuk membuat ulang pemetaan API. `https://api.example.com/orders/v2/items/categories/5`

   ```
   aws apigatewayv2 create-routing-rule \
     --domain-name 'api.example.com' \
     --priority 50 \
     --conditions '[
     {
       "MatchBasePaths": {
         "AnyOf": [
           "orders/v2/items/categories/5"
         ]
       }
     }
   ]' \
     --actions '[
     {
       "InvokeApi": {
         "ApiId": "a1b2c3",
         "Stage": "prod",
         "StripBasePath": true
       }
     }
   ]'
   ```

1. Gunakan perintah [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) berikut untuk memperbarui format log akses untuk menyertakan variabel. `$context.customDomain.routingRuleIdMatched` Variabel ini mencatat ID aturan perutean yang digunakan API Gateway untuk mengirim lalu lintas ke API Anda. Anda menggunakan log ini untuk mengonfirmasi bahwa API Gateway menggunakan aturan perutean Anda untuk mengirim lalu lintas ke API Anda. Untuk informasi selengkapnya, lihat [Saya tidak tahu bagaimana API Gateway mengirim lalu lintas ke saya APIs](rest-api-routing-rules-troubleshoot.md#rest-api-routing-rules-logging).

   ```
   aws apigateway update-stage \
     --rest-api-id a1bc2c3 \
     --stage-name prod \
     --patch-operations "op=replace,path=/accessLogSettings/format,value='\$context.path \$context.customDomain.routingRuleIdMatched \$context.requestId \$context.extendedRequestId'"
   ```

   Jika Anda tidak memiliki grup log, lihat[Siapkan CloudWatch logging untuk REST APIs di API Gateway](set-up-logging.md).

1. Gunakan contoh perintah curl berikut untuk memanggil nama domain kustom Anda dengan jalur dasar. `orders/v2/items/categories/5`

   ```
   curl "https://api.example.com/orders/v2/items/categories/5
   ```

1. Gunakan [filter-log-events](https://docs.aws.amazon.com/cli/latest/reference/logs/filter-log-events.html)perintah berikut untuk mendapatkan peristiwa log dari grup log `access-log-group-orders` yang berisi ID `abc123` aturan routing.

   ```
   aws logs filter-log-events --log-group-name access-log-group-orders --filter-pattern abc123
   ```

    Ini mengonfirmasi bahwa API Gateway menggunakan aturan perutean untuk mengirim lalu lintas ke API Anda.

------