Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

WebSocket ekspresi seleksi

Mode fokus
WebSocket ekspresi seleksi - Amazon API Gateway

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

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

APIGateway menggunakan ekspresi seleksi sebagai cara untuk mengevaluasi konteks permintaan dan respons dan menghasilkan kunci. Kunci tersebut kemudian digunakan untuk memilih dari serangkaian nilai yang mungkin, biasanya disediakan oleh Anda, API pengembang. Kumpulan yang tepat dari variabel yang didukung akan bervariasi tergantung pada ekspresi tertentu. Setiap ekspresi dibahas secara lebih rinci di bawah ini.

Untuk semua ekspresi, bahasa mengikuti seperangkat aturan yang sama:

  • Variabel diawali dengan"$".

  • Kurung kurawal dapat digunakan untuk secara eksplisit mendefinisikan batas variabel, misalnya,. "${request.body.version}-beta"

  • Beberapa variabel didukung, tetapi evaluasi hanya terjadi sekali (tidak ada evaluasi rekursif).

  • Tanda dolar ($) dapat lolos dengan"\". Ini paling berguna saat mendefinisikan ekspresi yang memetakan ke $default kunci yang dicadangkan, misalnya,"\$default".

  • Dalam beberapa kasus, format pola diperlukan. Dalam hal ini, ekspresi harus dibungkus dengan garis miring ("/"), misalnya "/2\d\d/" untuk mencocokkan kode 2XX status.

Ekspresi pemilihan respons rute

Respons rute digunakan untuk memodelkan respons dari backend ke klien. Untuk WebSocket APIs, respons rute adalah opsional. Ketika didefinisikan, itu memberi sinyal ke API Gateway bahwa ia harus mengembalikan respons ke klien setelah menerima WebSocket pesan.

Evaluasi ekspresi pemilihan respons rute menghasilkan kunci respons rute. Akhirnya, kunci ini akan digunakan untuk memilih dari salah satu yang RouteResponsesterkait denganAPI. Namun, saat ini hanya $default kunci yang didukung.

APIekspresi pemilihan kunci

Ekspresi ini dievaluasi ketika layanan menentukan permintaan yang diberikan harus dilanjutkan hanya jika klien memberikan APIkunci yang valid.

Saat ini hanya dua nilai yang didukung adalah $request.header.x-api-key dan$context.authorizer.usageIdentifierKey.

APIekspresi pemilihan pemetaan

Ekspresi ini dievaluasi untuk menentukan API tahap mana yang dipilih saat permintaan dibuat menggunakan domain khusus.

Saat ini, satu-satunya nilai yang didukung adalah $request.basepath.

WebSocketringkasan ekspresi seleksi

Tabel berikut merangkum kasus penggunaan untuk ekspresi seleksi di WebSocketAPIs:

Ekspresi seleksi Mengevaluasi ke kunci untuk Catatan Contoh kasus penggunaan
Api.RouteSelectionExpression Route.RouteKey $defaultdidukung sebagai rute catch-all. Rute WebSocket pesan berdasarkan konteks permintaan klien.
Route.ModelSelectionExpression Kunci untuk Route.RequestModels

Tidak wajib.

Jika disediakan untuk integrasi non-proxy, validasi model terjadi.

$defaultdidukung sebagai catch-all.

Lakukan validasi permintaan secara dinamis dalam rute yang sama.
Integration.TemplateSelectionExpression Kunci untuk Integration.RequestTemplates

Tidak wajib.

Dapat disediakan untuk integrasi non-proxy untuk memanipulasi muatan yang masuk.

${request.body.jsonPath}dan nilai statis didukung.

$defaultdidukung sebagai catch-all.

Memanipulasi permintaan pemanggil berdasarkan properti dinamis permintaan.
Integration.IntegrationResponseSelectionExpression IntegrationResponse.IntegrationResponseKey

Tidak wajib. Dapat disediakan untuk integrasi non-proxy.

Bertindak sebagai kecocokan pola untuk pesan kesalahan (dari Lambda) atau kode status (dari HTTP integrasi).

$defaultdiperlukan untuk integrasi non-proxy untuk bertindak sebagai tangkapan semua untuk tanggapan yang berhasil.

Memanipulasi respons dari backend.

Pilih tindakan yang akan terjadi berdasarkan respons dinamis backend (misalnya, menangani kesalahan tertentu dengan jelas).

IntegrationResponse.TemplateSelectionExpression Kunci untuk IntegrationResponse.ResponseTemplates Tidak wajib. Dapat disediakan untuk integrasi non-proxy.

$ default didukung.

Dalam beberapa kasus, properti dinamis dari respons dapat menentukan transformasi yang berbeda dalam rute yang sama dan integrasi terkait.

${request.body.jsonPath},${integration.response.statuscode},${integration.response.header.headerName},${integration.response.multivalueheader.headerName}, dan nilai statis didukung.

$defaultdidukung sebagai catch-all.

Route.RouteResponseSelectionExpression RouteResponse.RouteResponseKey

Harus disediakan untuk memulai komunikasi dua arah untuk suatu WebSocket rute.

Saat ini, nilai ini dibatasi $default hanya untuk.

RouteResponse.ModelSelectionExpression Kunci untuk RouteResponse.RequestModels Saat ini tidak didukung.

Di halaman ini

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.