Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Anda dapat mengintegrasikan HTTP API Anda dengan AWS layanan dengan menggunakan integrasi kelas satu. Integrasi kelas satu menghubungkan rute API HTTP ke API AWS layanan. Saat klien memanggil rute yang didukung oleh integrasi kelas satu, API Gateway akan memanggil API AWS layanan untuk Anda. Misalnya, Anda dapat menggunakan integrasi kelas satu untuk mengirim pesan ke antrian Layanan Antrian Sederhana Amazon, atau untuk memulai mesin status. AWS Step Functions Untuk tindakan layanan yang didukung, lihatReferensi subtipe integrasi.
Parameter permintaan pemetaan
Integrasi kelas satu memiliki parameter yang diperlukan dan opsional. Anda harus mengkonfigurasi semua parameter yang diperlukan untuk membuat integrasi. Anda dapat menggunakan nilai statis atau parameter peta yang dievaluasi secara dinamis saat runtime. Untuk daftar lengkap integrasi dan parameter yang didukung, lihatReferensi subtipe integrasi.
Tabel berikut menjelaskan parameter permintaan pemetaan yang didukung.
Tipe | Contoh | Catatan |
---|---|---|
Nilai header | $ request.header. name |
Nama header tidak peka huruf besar/kecil. API Gateway menggabungkan beberapa nilai header dengan koma, misalnya"header1":
"value1,value2" . |
Nilai string kueri | $request.querystring. name |
Nama string kueri peka huruf besar/kecil. API Gateway menggabungkan beberapa nilai dengan koma, misalnya"querystring1":
"Value1,Value2" . |
Parameter jalur | $request.path. name |
Nilai parameter jalur dalam permintaan. Misalnya jika rutenya/pets/{petId} , Anda dapat memetakan petId parameter dari permintaan dengan$request.path.petId . |
Minta passthrough tubuh | $ request.body | API Gateway melewati seluruh isi permintaan. |
Isi permintaan | $ request.body. name |
Ekspresi jalur JSON$request.body.. ) dan ekspresi filter (?( ) tidak didukung. catatanSaat Anda menentukan jalur JSON, API Gateway memotong isi permintaan pada 100 KB dan kemudian menerapkan ekspresi seleksi. Untuk mengirim muatan yang lebih besar dari 100 KB, tentukan |
Variabel konteks | $ konteks. variableName |
Nilai variabel konteks yang didukung. |
Variabel tahap | $ StageVariables. variableName |
Nilai variabel tahap. |
Nilai statis | string |
Nilai konstan. |
Buat integrasi kelas satu
Sebelum membuat integrasi kelas satu, Anda harus membuat peran IAM yang memberikan izin API Gateway untuk menjalankan tindakan AWS layanan yang Anda integrasikan. Untuk mempelajari lebih lanjut, lihat Membuat peran untuk AWS layanan.
Untuk membuat integrasi kelas satu, pilih tindakan AWS layanan yang didukung, sepertiSQS-SendMessage
, mengonfigurasi parameter permintaan, dan berikan peran yang memberikan izin API Gateway untuk menjalankan API layanan terintegrasi. AWS Tergantung pada subtipe integrasi, parameter permintaan yang berbeda diperlukan. Untuk mempelajari selengkapnya, lihat Referensi subtipe integrasi.
Perintah create-integration berikut membuat integrasi yang mengirimkan pesan Amazon SQS:
aws apigatewayv2 create-integration \ --api-id abcdef123 \ --integration-subtype SQS-SendMessage \ --integration-type AWS_PROXY \ --payload-format-version 1.0 \ --credentials-arn arn:aws:iam::123456789012:role/apigateway-sqs \ --request-parameters '{"QueueUrl": "$request.header.queueUrl", "MessageBody": "$request.body.message"}'
Buat integrasi kelas satu menggunakan AWS CloudFormation
Contoh berikut menunjukkan AWS CloudFormation cuplikan yang membuat /{source}/{detailType}
rute dengan integrasi kelas satu dengan Amazon. EventBridge
Source
Parameter dipetakan ke parameter {source}
jalur, DetailType
dipetakan ke parameter {DetailType}
jalur, dan Detail
parameter dipetakan ke badan permintaan.
Cuplikan tidak menampilkan bus acara atau peran IAM yang memberikan izin API Gateway untuk menjalankan tindakan. PutEvents
Route: Type: AWS::ApiGatewayV2::Route Properties: ApiId: !Ref HttpApi AuthorizationType: None RouteKey: 'POST /{source}/{detailType}' Target: !Join - / - - integrations - !Ref Integration Integration: Type: AWS::ApiGatewayV2::Integration Properties: ApiId: !Ref HttpApi IntegrationType: AWS_PROXY IntegrationSubtype: EventBridge-PutEvents CredentialsArn: !GetAtt EventBridgeRole.Arn RequestParameters: Source: $request.path.source DetailType: $request.path.detailType Detail: $request.body EventBusName: !GetAtt EventBus.Arn PayloadFormatVersion: "1.0"