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

Menyiapkan permintaan integrasi WebSocket API di API Gateway

Mode fokus
Menyiapkan permintaan integrasi WebSocket API di API Gateway - 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.

Menyiapkan permintaan integrasi melibatkan hal-hal berikut:

  • Memilih kunci rute untuk diintegrasikan ke backend.

  • Menentukan titik akhir backend untuk dipanggil. WebSocket APIs mendukung jenis integrasi berikut:

    • AWS_PROXY

    • AWS

    • HTTP_PROXY

    • HTTP

    • MOCK

    Untuk informasi selengkapnya tentang jenis integrasi, lihat IntegrationTypedi API REST API Gateway V2.

  • Mengkonfigurasi cara mengubah data permintaan rute, jika perlu, menjadi data permintaan integrasi dengan menentukan satu atau beberapa templat permintaan.

Menyiapkan permintaan integrasi WebSocket API menggunakan konsol API Gateway

Untuk menambahkan permintaan integrasi ke rute di WebSocket API menggunakan konsol API Gateway
  1. Masuk ke konsol API Gateway, pilih API, dan pilih Rute.

  2. Di bawah Rute, pilih rute.

  3. Pilih tab Permintaan integrasi, dan kemudian di bagian Pengaturan permintaan integrasi, pilih Edit.

  4. Untuk jenis Integrasi, pilih salah satu dari berikut ini:

    • Pilih fungsi Lambda hanya jika API Anda akan diintegrasikan dengan AWS Lambda fungsi yang telah Anda buat di akun ini atau di akun lain.

      Untuk membuat fungsi Lambda baru di AWS Lambda, untuk menetapkan izin sumber daya pada fungsi Lambda, atau untuk melakukan tindakan layanan Lambda lainnya, pilih Layanan sebagai gantinya.AWS

    • Pilih HTTP jika API Anda akan terintegrasi dengan titik akhir HTTP yang ada. Untuk informasi selengkapnya, lihat Integrasi HTTP untuk REST API di API Gateway.

    • Pilih Mock jika Anda ingin menghasilkan respons API dari API Gateway secara langsung, tanpa perlu backend integrasi. Untuk informasi selengkapnya, lihat Integrasi tiruan untuk REST API di API Gateway.

    • Pilih AWS layanan jika API Anda akan terintegrasi dengan AWS layanan.

    • Pilih tautan VPC jika API Anda akan menggunakan titik akhir integrasi VpcLink sebagai pribadi. Untuk informasi selengkapnya, lihat Integrasi pribadi untuk REST APIs di API Gateway.

  5. Jika Anda memilih fungsi Lambda, lakukan hal berikut:

    1. Untuk Menggunakan integrasi proxy Lambda, pilih kotak centang jika Anda ingin menggunakan integrasi proxy Lambda atau integrasi proxy Lambda lintas akun.

    2. Untuk fungsi Lambda, tentukan fungsi dengan salah satu cara berikut:

      • Jika fungsi Lambda Anda berada di akun yang sama, masukkan nama fungsi dan kemudian pilih fungsi dari daftar dropdown.

        catatan

        Nama fungsi secara opsional dapat menyertakan alias atau spesifikasi versinya, seperti dalam, HelloWorldHelloWorld:1, atau. HelloWorld:alpha

      • Jika fungsinya ada di akun yang berbeda, masukkan ARN untuk fungsi tersebut.

    3. Untuk menggunakan nilai batas waktu default 29 detik, tetap aktifkan batas waktu default. Untuk menetapkan batas waktu kustom, pilih Batas waktu default dan masukkan nilai batas waktu antara 50 dan milidetik. 29000

  6. Jika Anda memilih HTTP, ikuti petunjuk di langkah 4 dariMenyiapkan permintaan integrasi API menggunakan konsol API Gateway.

  7. Jika Anda memilih Mock, lanjutkan ke langkah Permintaan Template.

  8. Jika Anda memilih AWS layanan, ikuti instruksi pada langkah 6 dariMenyiapkan permintaan integrasi API menggunakan konsol API Gateway.

  9. Jika Anda memilih tautan VPC, lakukan hal berikut:

    1. Untuk integrasi proxy VPC, pilih kotak centang jika Anda ingin permintaan Anda diproksi ke titik akhir Anda. VPCLink

    2. Untuk metode HTTP, pilih jenis metode HTTP yang paling cocok dengan metode di backend HTTP.

    3. Dari daftar dropdown tautan VPC, pilih tautan VPC. Anda dapat memilih [Use Stage Variables] dan memasukkan ${stageVariables.vpcLinkId} dalam kotak teks di bawah daftar.

      Anda dapat menentukan variabel vpcLinkId stage setelah menerapkan API ke tahap dan menetapkan nilainya ke ID. VpcLink

    4. Untuk URL Endpoint, masukkan URL backend HTTP yang ingin digunakan integrasi ini.

    5. Untuk menggunakan nilai batas waktu default 29 detik, tetap aktifkan batas waktu default. Untuk menetapkan batas waktu kustom, pilih Batas waktu default dan masukkan nilai batas waktu antara 50 dan milidetik. 29000

  10. Pilih Simpan perubahan.

  11. Di bawah templat Permintaan, lakukan hal berikut:

    1. Untuk memasukkan ekspresi pemilihan Template, di bawah Permintaan template, pilih Edit.

    2. Masukkan ekspresi pemilihan Template. Gunakan ekspresi yang dicari API Gateway di payload pesan. Jika ditemukan, itu dievaluasi, dan hasilnya adalah nilai kunci template yang digunakan untuk memilih template pemetaan data yang akan diterapkan ke data dalam payload pesan. Anda membuat template pemetaan data di langkah berikutnya. Pilih Edit untuk menyimpan perubahan Anda.

    3. Pilih Buat template untuk membuat template pemetaan data. Untuk kunci Template, masukkan nilai kunci template yang digunakan untuk memilih template pemetaan data yang akan diterapkan ke data dalam payload pesan. Kemudian, masukkan template pemetaan. Pilih Buat templat.

      Untuk informasi tentang ekspresi pemilihan templat, lihatEkspresi pemilihan template.

Siapkan permintaan integrasi menggunakan AWS CLI

Anda dapat menyiapkan permintaan integrasi untuk rute di WebSocket API dengan menggunakan AWS CLI seperti pada contoh berikut, yang membuat integrasi tiruan:

  1. Buat file bernamaintegration-params.json, dengan konten berikut:

    {"PassthroughBehavior": "WHEN_NO_MATCH", "TimeoutInMillis": 29000, "ConnectionType": "INTERNET", "RequestTemplates": {"application/json": "{\"statusCode\":200}"}, "IntegrationType": "MOCK"}
  2. Gunakan perintah create-integration berikut untuk membuat integrasi tiruan.

    aws apigatewayv2 --region us-east-1 create-integration --api-id aabbccddee --cli-input-json file://integration-params.json

    Outputnya akan terlihat seperti berikut:

    { "PassthroughBehavior": "WHEN_NO_MATCH", "TimeoutInMillis": 29000, "ConnectionType": "INTERNET", "IntegrationResponseSelectionExpression": "${response.statuscode}", "RequestTemplates": { "application/json": "{\"statusCode\":200}" }, "IntegrationId": "0abcdef", "IntegrationType": "MOCK" }

Atau, Anda dapat mengatur permintaan integrasi untuk integrasi proxy dengan menggunakan AWS CLI.

  1. Buat fungsi Lambda di konsol Lambda dan berikan peran eksekusi Lambda dasar.

  2. Gunakan perintah create-integration berikut untuk membuat integrasi.

    aws apigatewayv2 create-integration --api-id aabbccddee --integration-type AWS_PROXY --integration-method POST --integration-uri arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:123412341234:function:simpleproxy-echo-e2e/invocations

Outputnya akan terlihat seperti berikut:

{ "PassthroughBehavior": "WHEN_NO_MATCH", "IntegrationMethod": "POST", "TimeoutInMillis": 29000, "ConnectionType": "INTERNET", "IntegrationUri": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:123412341234:function:simpleproxy-echo-e2e/invocations", "IntegrationId": "abcdefg", "IntegrationType": "AWS_PROXY" }

Format input fungsi Lambda untuk integrasi proxy untuk WebSocket APIs

Dalam integrasi proxy Lambda, API Gateway memetakan seluruh permintaan klien ke event parameter input fungsi Lambda backend. Contoh berikut menunjukkan struktur peristiwa masukan dari $connect rute dan peristiwa masukan dari rute yang dikirimkan API Gateway ke integrasi proxy Lambda. $disconnect

Input from the $connect route
{ headers: { Host: 'abcd123.execute-api.us-east-1.amazonaws.com', 'Sec-WebSocket-Extensions': 'permessage-deflate; client_max_window_bits', 'Sec-WebSocket-Key': '...', 'Sec-WebSocket-Version': '13', 'X-Amzn-Trace-Id': '...', 'X-Forwarded-For': '192.0.2.1', 'X-Forwarded-Port': '443', 'X-Forwarded-Proto': 'https' }, multiValueHeaders: { Host: [ 'abcd123.execute-api.us-east-1.amazonaws.com' ], 'Sec-WebSocket-Extensions': [ 'permessage-deflate; client_max_window_bits' ], 'Sec-WebSocket-Key': [ '...' ], 'Sec-WebSocket-Version': [ '13' ], 'X-Amzn-Trace-Id': [ '...' ], 'X-Forwarded-For': [ '192.0.2.1' ], 'X-Forwarded-Port': [ '443' ], 'X-Forwarded-Proto': [ 'https' ] }, requestContext: { routeKey: '$connect', eventType: 'CONNECT', extendedRequestId: 'ABCD1234=', requestTime: '09/Feb/2024:18:11:43 +0000', messageDirection: 'IN', stage: 'prod', connectedAt: 1707502303419, requestTimeEpoch: 1707502303420, identity: { sourceIp: '192.0.2.1' }, requestId: 'ABCD1234=', domainName: 'abcd1234.execute-api.us-east-1.amazonaws.com', connectionId: 'AAAA1234=', apiId: 'abcd1234' }, isBase64Encoded: false }
Input from the $disconnect route
{ headers: { Host: 'abcd1234.execute-api.us-east-1.amazonaws.com', 'x-api-key': '', 'X-Forwarded-For': '', 'x-restapi': '' }, multiValueHeaders: { Host: [ 'abcd1234.execute-api.us-east-1.amazonaws.com' ], 'x-api-key': [ '' ], 'X-Forwarded-For': [ '' ], 'x-restapi': [ '' ] }, requestContext: { routeKey: '$disconnect', disconnectStatusCode: 1005, eventType: 'DISCONNECT', extendedRequestId: 'ABCD1234=', requestTime: '09/Feb/2024:18:23:28 +0000', messageDirection: 'IN', disconnectReason: 'Client-side close frame status not set', stage: 'prod', connectedAt: 1707503007396, requestTimeEpoch: 1707503008941, identity: { sourceIp: '192.0.2.1' }, requestId: 'ABCD1234=', domainName: 'abcd1234.execute-api.us-east-1.amazonaws.com', connectionId: 'AAAA1234=', apiId: 'abcd1234' }, isBase64Encoded: false }
{ headers: { Host: 'abcd123.execute-api.us-east-1.amazonaws.com', 'Sec-WebSocket-Extensions': 'permessage-deflate; client_max_window_bits', 'Sec-WebSocket-Key': '...', 'Sec-WebSocket-Version': '13', 'X-Amzn-Trace-Id': '...', 'X-Forwarded-For': '192.0.2.1', 'X-Forwarded-Port': '443', 'X-Forwarded-Proto': 'https' }, multiValueHeaders: { Host: [ 'abcd123.execute-api.us-east-1.amazonaws.com' ], 'Sec-WebSocket-Extensions': [ 'permessage-deflate; client_max_window_bits' ], 'Sec-WebSocket-Key': [ '...' ], 'Sec-WebSocket-Version': [ '13' ], 'X-Amzn-Trace-Id': [ '...' ], 'X-Forwarded-For': [ '192.0.2.1' ], 'X-Forwarded-Port': [ '443' ], 'X-Forwarded-Proto': [ 'https' ] }, requestContext: { routeKey: '$connect', eventType: 'CONNECT', extendedRequestId: 'ABCD1234=', requestTime: '09/Feb/2024:18:11:43 +0000', messageDirection: 'IN', stage: 'prod', connectedAt: 1707502303419, requestTimeEpoch: 1707502303420, identity: { sourceIp: '192.0.2.1' }, requestId: 'ABCD1234=', domainName: 'abcd1234.execute-api.us-east-1.amazonaws.com', connectionId: 'AAAA1234=', apiId: 'abcd1234' }, isBase64Encoded: false }
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.