Membuat ulang pemetaan API menggunakan aturan perutean - Amazon API Gateway

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

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.

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.

AWS Management Console
Untuk mengatur mode perutean ke ROUTING_RULE_THEN_ API_MAPPING
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih Nama domain khusus dari panel navigasi utama.

  3. Pilih nama domain kustom Anda.

  4. Untuk detail Domain, pilih Edit.

  5. Untuk mode Routing, pilih API_MAPPINGROUTING_RULE_THEN_.

  6. Pilih Simpan.

Setelah Anda mengatur mode routing, Anda membuat aturan routing.

Untuk membuat aturan routing
  1. Pada tab Routing details, pilih Add routing rule.

  2. Pilih Tambahkan kondisi baru dan kemudian pilih Path.

  3. Untuk Path, masukorders/v2/items/categories/5.

  4. Untuk jalur dasar Strip, pilih Aktif.

  5. Untuk API Target, pilih API target Anda.

  6. Untuk tahap Target, pilih tahap target Anda.

  7. Pilih Berikutnya.

  8. 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.

  9. 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.

  2. Pilih API Anda.

  3. Di panel navigasi utama, pilih Tahapan.

  4. Untuk Log dan penelusuran, pilih Edit.

    Jika Anda tidak memiliki grup log, lihatSiapkan CloudWatch logging untuk REST APIs di API Gateway.

  5. Tambahkan $context.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.

  6. 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, lihatMelihat peristiwa log API Gateway di CloudWatch konsol.

AWS CLI
  1. Gunakan update-domain-nameperintah 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
  2. Gunakan create-routing-ruleperintah 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 } } ]'
  3. Gunakan perintah update-stage 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.

    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, lihatSiapkan CloudWatch logging untuk REST APIs di API Gateway.

  4. 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
  5. Gunakan filter-log-eventsperintah 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.