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
-
Masuk ke konsol API Gateway, pilih API, dan pilih Rute.
-
Di bawah Rute, pilih rute.
-
Pilih tab Permintaan integrasi, dan kemudian di bagian Pengaturan permintaan integrasi, pilih Edit.
-
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.
-
-
Jika Anda memilih fungsi Lambda, lakukan hal berikut:
-
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,
HelloWorld
HelloWorld:1
, atau.HelloWorld:alpha
-
Jika fungsinya ada di akun yang berbeda, masukkan ARN untuk fungsi tersebut.
-
-
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
-
Jika Anda memilih HTTP, ikuti petunjuk di langkah 4 dariMenyiapkan permintaan integrasi API menggunakan konsol API Gateway.
-
Jika Anda memilih Mock, lanjutkan ke langkah Permintaan Template.
-
Jika Anda memilih AWS layanan, ikuti instruksi pada langkah 6 dariMenyiapkan permintaan integrasi API menggunakan konsol API Gateway.
-
Jika Anda memilih tautan VPC, lakukan hal berikut:
-
Untuk integrasi proxy VPC, pilih kotak centang jika Anda ingin permintaan Anda diproksi ke titik akhir Anda.
VPCLink
-
Untuk metode HTTP, pilih jenis metode HTTP yang paling cocok dengan metode di backend HTTP.
-
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
-
Untuk URL Endpoint, masukkan URL backend HTTP yang ingin digunakan integrasi ini.
-
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
-
-
Pilih Simpan perubahan.
-
Di bawah templat Permintaan, lakukan hal berikut:
Untuk memasukkan ekspresi pemilihan Template, di bawah Permintaan template, pilih Edit.
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.
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:
-
Buat file bernama
integration-params.json
, dengan konten berikut:{"PassthroughBehavior": "WHEN_NO_MATCH", "TimeoutInMillis": 29000, "ConnectionType": "INTERNET", "RequestTemplates": {"application/json": "{\"statusCode\":200}"}, "IntegrationType": "MOCK"}
-
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.
-
Buat fungsi Lambda di konsol Lambda dan berikan peran eksekusi Lambda dasar.
-
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
{
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
}