Catatan penting Amazon API Gateway - APIGerbang Amazon

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

Catatan penting Amazon API Gateway

Catatan penting Amazon API Gateway untuk RESTAPIs, HTTPAPIs, dan WebSocket APIs

  • Signature Version 4A tidak secara resmi didukung oleh Amazon API Gateway.

Catatan penting Amazon API Gateway untuk REST dan WebSocket APIs

  • APIGateway tidak mendukung berbagi nama domain khusus di seluruh REST dan WebSocket APIs.

  • Nama panggung hanya dapat berisi karakter alfanumerik, tanda hubung, dan garis bawah. Panjang maksimum adalah 128 karakter.

  • /spingJalur /ping dan disediakan untuk pemeriksaan kesehatan layanan. Penggunaan ini untuk sumber daya API tingkat root dengan domain khusus akan gagal menghasilkan hasil yang diharapkan.

  • APIGateway saat ini membatasi peristiwa log hingga 1024 byte. Peristiwa log yang lebih besar dari 1024 byte, seperti badan permintaan dan respons, akan dipotong oleh API Gateway sebelum dikirim ke Log. CloudWatch

  • CloudWatch Metrik saat ini membatasi nama dan nilai dimensi hingga 255 karakter yang validXML. (Untuk informasi selengkapnya, lihat Panduan CloudWatch Pengguna.) Nilai dimensi adalah fungsi dari nama yang ditentukan pengguna, termasuk nama, API nama label (tahap), dan nama sumber daya. Saat memilih nama-nama ini, berhati-hatilah untuk tidak melebihi batas CloudWatch Metrik.

  • Ukuran maksimum template pemetaan adalah 300 KB.

Catatan penting Amazon API Gateway untuk WebSocket APIs

  • APIGateway mendukung muatan pesan hingga 128 KB dengan ukuran bingkai maksimum 32 KB. Jika pesan melebihi 32 KB, Anda harus membaginya menjadi beberapa frame, masing-masing 32 KB atau lebih kecil. Jika pesan yang lebih besar diterima, koneksi ditutup dengan kode 1009.

Catatan penting Amazon API Gateway untuk REST APIs

  • Karakter pipa teks biasa (|) tidak didukung untuk string URL kueri permintaan apa pun dan harus URL dikodekan.

  • Karakter titik koma (;) tidak didukung untuk string permintaan URL permintaan apa pun dan menghasilkan data yang dibagi.

  • RESTAPIsparameter permintaan decode URL -encoded sebelum meneruskannya ke integrasi backend. Untuk parameter permintaan UTF -8, REST APIs dekode parameter dan kemudian berikan sebagai unicode ke integrasi backend.

  • Saat menggunakan konsol API Gateway untuk mengujiAPI, Anda mungkin mendapatkan respons “kesalahan titik akhir tidak dikenal” jika sertifikat yang ditandatangani sendiri ditampilkan ke backend, sertifikat perantara hilang dari rantai sertifikat, atau pengecualian terkait sertifikat lain yang tidak dapat dikenali yang dilemparkan oleh backend.

  • Untuk Methodentitas API Resourceatau dengan integrasi pribadi, Anda harus menghapusnya setelah menghapus referensi kode keras dari file. VpcLink Jika tidak, Anda memiliki integrasi yang menggantung dan menerima kesalahan yang menyatakan bahwa VPC tautan masih digunakan bahkan ketika Method entitas Resource atau dihapus. Perilaku ini tidak berlaku ketika referensi integrasi pribadi VpcLink melalui variabel tahap.

  • Backend berikut mungkin tidak mendukung otentikasi SSL klien dengan cara yang kompatibel dengan Gateway: API

  • APIGateway mendukung sebagian besar spesifikasi Open API 2.0 dan spesifikasi Open API 3.0, dengan pengecualian berikut:

    • Segmen jalur hanya dapat berisi karakter alfanumerik, garis bawah, tanda hubung, titik, koma, titik dua, dan kurawal kurawal. Parameter jalur harus segmen jalur terpisah. Misalnya, “resource/ {path_parameter_name}” valid; “resource {path_parameter_name}” tidak.

    • Nama model hanya dapat berisi karakter alfanumerik.

    • Untuk parameter input, hanya atribut berikut yang didukung:name,in,required,type,description. Atribut lainnya diabaikan.

    • securitySchemesJenisnya, jika digunakan, harusapiKey. Namun, OAuth 2 dan otentikasi HTTP Dasar didukung melalui otorisasi Lambda; konfigurasi API Terbuka dicapai melalui ekstensi vendor.

    • deprecatedBidang tidak didukung dan dijatuhkan di ekspor. APIs

    • APIModel gateway didefinisikan menggunakan JSONskema draf 4, bukan JSON skema yang digunakan oleh Open. API

    • discriminatorParameter tidak didukung dalam objek skema apa pun.

    • exampleTag tidak didukung.

    • exclusiveMinimumtidak didukung oleh API Gateway.

    • minItemsTag maxItems dan tidak termasuk dalam validasi permintaan sederhana. Untuk mengatasinya, perbarui model setelah impor sebelum melakukan validasi.

    • oneOftidak didukung untuk Open API 2.0 atau SDK generasi.

    • readOnlyBidang tidak didukung.

    • $reftidak dapat digunakan untuk referensi file lain.

    • Definisi respons "500": {"$ref": "#/responses/UnexpectedError"} formulir tidak didukung di root API dokumen Terbuka. Untuk mengatasinya, ganti referensi dengan skema inline.

    • Nomor Int64 tipe Int32 atau tidak didukung. Contoh ditunjukkan sebagai berikut:

      "elementId": { "description": "Working Element Id", "format": "int32", "type": "number" }
    • Jenis format angka desimal ("format": "decimal") tidak didukung dalam definisi skema.

    • Dalam respons metode, definisi skema harus dari tipe objek dan tidak dapat tipe primitif. Misalnya, "schema": { "type": "string"} tidak didukung. Namun, Anda dapat mengatasinya menggunakan jenis objek berikut:

      "schema": { "$ref": "#/definitions/StringResponse" } "definitions": { "StringResponse": { "type": "string" } }
    • APIGateway tidak menggunakan keamanan tingkat root yang ditentukan dalam API spesifikasi Terbuka. Oleh karena itu keamanan perlu didefinisikan pada tingkat operasi agar diterapkan dengan tepat.

    • Kata default kunci tidak didukung.

  • APIGateway memberlakukan batasan dan batasan berikut saat menangani metode dengan integrasi atau integrasi HTTP Lambda.

    • Nama header dan parameter kueri diproses dengan cara case-sensitive.

    • Tabel berikut mencantumkan header yang mungkin dihapus, dipetakan ulang, atau diubah saat dikirim ke titik akhir integrasi atau dikirim kembali oleh titik akhir integrasi Anda. Dalam tabel ini:

      • Remappedberarti bahwa nama header diubah dari <string> menjadiX-Amzn-Remapped-<string>.

        Remapped Overwrittenberarti bahwa nama header diubah dari <string> ke X-Amzn-Remapped-<string> dan nilainya ditimpa.

      Nama header Permintaan (http/http_proxy/lambda) Tanggapan (http/http_proxy/lambda)
      Age Passthrough Passthrough
      Accept Passthrough Jatuh/Passthrough/Passthrough
      Accept-Charset Passthrough Passthrough
      Accept-Encoding Passthrough Passthrough
      Authorization Passthrough * Dipetakan ulang
      Connection Passthrough/Passthrough/Drop Dipetakan ulang
      Content-Encoding Passthrough/Dropped/Passthrough Passthrough
      Content-Length Passthrough (dihasilkan berdasarkan tubuh) Passthrough
      Content-MD5 Jatuh Dipetakan ulang
      Content-Type Passthrough Passthrough
      Date Passthrough Dipetakan Ulang Ditimpa
      Expect Jatuh Jatuh
      Host Ditimpa ke titik akhir integrasi Jatuh
      Max-Forwards Jatuh Dipetakan ulang
      Pragma Passthrough Passthrough
      Proxy-Authenticate Jatuh Jatuh
      Range Passthrough Passthrough
      Referer Passthrough Passthrough
      Server Jatuh Dipetakan Ulang Ditimpa
      TE Jatuh Jatuh
      Transfer-Encoding Jatuh/Jatuh/Pengecualian Jatuh
      Trailer Jatuh Jatuh
      Upgrade Jatuh Jatuh
      User-Agent Passthrough Dipetakan ulang
      Via Jatuh/Jatuh/Passthrough Passthrough/Dropped/Drop
      Warn Passthrough Passthrough
      WWW-Authenticate Jatuh Dipetakan ulang

      * Authorization Header dijatuhkan jika berisi tanda tangan Versi Tanda Tangan 4 atau jika AWS_IAM otorisasi digunakan.

  • Android SDK yang API dihasilkan oleh API Gateway menggunakan java.net.HttpURLConnection kelas. Kelas ini akan menampilkan pengecualian yang tidak tertangani, pada perangkat yang menjalankan Android 4.4 dan yang lebih lama, untuk respons 401 yang dihasilkan dari pemetaan ulang header ke. WWW-Authenticate X-Amzn-Remapped-WWW-Authenticate

  • Tidak seperti Java, Android, dan iOS SDKs yang API dihasilkan oleh GatewayAPI, yang API dihasilkan oleh API Gateway tidak mendukung percobaan ulang untuk kesalahan tingkat 500. JavaScript SDK

  • Pemanggilan pengujian metode menggunakan jenis konten default application/json dan mengabaikan spesifikasi jenis konten lainnya.

  • Saat mengirim permintaan ke API dengan meneruskan X-HTTP-Method-Override header, API Gateway mengganti metode. Jadi untuk meneruskan header ke backend, header perlu ditambahkan ke permintaan integrasi.

  • Ketika permintaan berisi beberapa jenis media di Accept header, API Gateway hanya menghormati jenis Accept media pertama. Dalam situasi di mana Anda tidak dapat mengontrol urutan jenis Accept media dan jenis media konten biner Anda bukan yang pertama dalam daftar, Anda dapat menambahkan jenis Accept media pertama dalam binaryMediaTypes daftar AndaAPI, API Gateway akan mengembalikan konten Anda sebagai biner. Misalnya, untuk mengirim JPEG file menggunakan <img> elemen di browser, browser mungkin mengirim Accept:image/webp,image/*,*/*;q=0.8 permintaan. Dengan menambahkan image/webp ke binaryMediaTypes daftar, titik akhir akan menerima JPEG file sebagai biner.

  • Menyesuaikan respons gateway default untuk saat ini 413 REQUEST_TOO_LARGE tidak didukung.

  • APIGateway menyertakan Content-Type header untuk semua tanggapan integrasi. Secara default, jenis konten adalahapplication/json.