View a markdown version of this page

Gunakan pemetaan API untuk menghubungkan tahapan API ke nama domain khusus untuk REST API - Amazon API Gateway

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

Gunakan pemetaan API untuk menghubungkan tahapan API ke nama domain khusus untuk REST API

Anda menggunakan pemetaan API untuk menghubungkan tahapan API ke nama domain khusus. Ini mengirimkan lalu lintas ke API Anda melalui nama domain kustom Anda.

Pemetaan API menentukan API, stage, dan opsional jalur yang akan digunakan untuk pemetaan. Misalnya, Anda dapat https://api.example.com/orders memetakan ke production tahap API.

Anda dapat memetakan tahapan HTTP dan REST API ke nama domain kustom yang sama.

Sebelum membuat pemetaan API, Anda harus memiliki API, stage, dan nama domain khusus. Untuk mempelajari selengkapnya tentang membuat nama domain khusus, lihatSiapkan nama domain kustom Regional di API Gateway.

Permintaan masuk ke nama domain kustom Anda

Saat Anda memetakan nama domain khusus ke tahap API Anda, API Gateway menghapus jalur dasar yang masuk. Ini menghapus jalur dasar yang dipetakan dari pemanggilan ke API. Misalnya, jika pemetaan jalur dasar Anda https://api.example.com/orders/shop/5 ke pang test gung, dan Anda menggunakan permintaan berikut,https://api.example.com/orders/shop/5/hats, API Gateway akan memanggil /hats sumber daya test tahap API Anda, bukan orders/shop/5/hats sumber daya.

Permintaan API pemetaan

Berikut ini menjelaskan bagaimana API Gateway mengevaluasi pemetaan API.

Anda dapat membuat pemetaan API menggunakan pemetaan tingkat tunggal, seperti pemetaan API dari orders beta tahap API dan pemetaan API dari shipping ke alpha tahap API. Untuk nama domain kustom Regional dengan kebijakan keamanan TLS 1.2, API Gateway mendukung pemetaan API multi-level. Anda dapat membuat pemetaan API dari orders/v1/items alpha tahap API dan orders/v2/items ke beta tahap API. Saat Anda membuat pemetaan dengan beberapa level, API Gateway mengirimkan permintaan ke pemetaan API yang memiliki jalur pencocokan terpanjang.

Anda dapat membuat pemetaan API ke jalur kosong(none). Jika tidak ada jalur yang cocok dengan permintaan, API Gateway mengirimkan permintaan ke jalur kosong(none).

Dalam contoh ini, nama domain kustom https://api.example.com memiliki pemetaan API berikut.

Pemetaan API API yang dipilih

(none)

API 1

orders

API 2

orders/v1/items

API 3

orders/v2/items

API 4

orders/v1/items/categories

API 5

Tabel berikut menunjukkan bagaimana API Gateway menerapkan pemetaan API sebelumnya ke permintaan contoh.

Permintaan API yang dipilih Penjelasan

https://api.example.com/orders

API 2

Permintaan persis cocok dengan pemetaan API ini.

https://api.example.com/orders/v1/items

API 3

Permintaan persis cocok dengan pemetaan API ini.

https://api.example.com/orders/v2/items

API 4

Permintaan persis cocok dengan pemetaan API ini.

https://api.example.com/orders/v1/items/123

API 3

API Gateway memilih pemetaan yang memiliki jalur pencocokan terpanjang. 123Di akhir permintaan tidak mempengaruhi pemilihan. Lihat Permintaan masuk ke nama domain kustom Anda.

https://api.example.com/orders/v1/items/categories/5

API 5

API Gateway memilih pemetaan yang memiliki jalur pencocokan terpanjang.

https://api.example.com/customers

API 1

API Gateway menggunakan pemetaan kosong sebagai catch-all.

https://api.example.com/ordersandmore

API 2

API Gateway memilih pemetaan yang memiliki awalan pencocokan terpanjang.

Untuk nama domain khusus yang dikonfigurasi dengan pemetaan tingkat tunggal, seperti hanya https://api.example.com/orders danhttps://api.example.com/, API Gateway akan memilihAPI 1, karena tidak ada jalur yang cocok dengan. ordersandmore

Pembatasan

  • Dalam pemetaan API, nama domain khusus dan API yang dipetakan harus berada di AWS akun yang sama.

  • Pemetaan API hanya harus berisi huruf, angka, dan karakter berikut:. $-_.+!*'()/

  • Panjang maksimum untuk jalur dalam pemetaan API adalah 300 karakter.

  • Anda dapat memiliki 200 pemetaan API dengan beberapa level untuk setiap nama domain. Batas ini tidak termasuk pemetaan API dengan level tunggal, seperti/prod.

  • Anda hanya dapat memetakan API HTTP ke nama domain kustom regional dengan kebijakan keamanan TLS 1.2.

  • Anda tidak dapat memet WebSocket akan API ke nama domain kustom yang sama dengan API HTTP atau REST API.

  • Setelah membuat pemetaan API, Anda harus membuat atau memperbarui catatan sumber daya penyedia DNS untuk dipetakan ke titik akhir API Anda.

  • Jika Anda membuat pemetaan API dengan beberapa level, API Gateway mengonversi semua nama header menjadi huruf kecil.

Buat pemetaan API

Untuk membuat pemetaan API, Anda harus terlebih dahulu membuat nama domain khusus, API, dan tahap. Nama domain kustom Anda harus memiliki mode perutean yang disetel ke salah ROUTING_RULE_THEN_API_MAPPING satu atauAPI_MAPPING_ONLY. Untuk informasi tentang cara mengatur mode routing, lihatMengatur mode routing untuk nama domain kustom Anda.

Misalnya AWS Serverless Application Model template yang membuat semua sumber daya, lihat S esi Dengan SAM aktif GitHub.

Konsol Manajemen AWS
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih Nama domain kustom dari panel navigasi utama.

  3. Pilih nama domain khusus.

  4. Pada tab Routing details, pilih Con figure API mapping.

  5. Masukkan API, St age, dan Path untuk pemetaan.

  6. Pilih Simpan.

AWS CLI

Perintah create-api-mapping berikut membuat pemetaan API. Dalam contoh ini, API Gateway mengirimkan permintaan api.example.com/v1/orders ke API dan tahap yang ditentukan.

catatan

Untuk membuat pemetaan API dengan beberapa level, Anda harus menggunakan. apigatewayv2

aws apigatewayv2 create-api-mapping \ --domain-name api.example.com \ --api-mapping-key v1/orders \ --api-id a1b2c3d4 \ --stage test
CloudFormation

CloudFormation Contoh berikut membuat pemetaan API.

catatan

Untuk membuat pemetaan API dengan beberapa level, Anda harus menggunakan. AWS::ApiGatewayV2

MyApiMapping: Type: 'AWS::ApiGatewayV2::ApiMapping' Properties: DomainName: api.example.com ApiMappingKey: 'orders/v2/items' ApiId: !Ref MyApi Stage: !Ref MyStage