Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Anda dapat mengintegrasikan AWS layanan Anda HTTP API dengan menggunakan integrasi kelas satu. Integrasi kelas satu menghubungkan HTTP API rute ke AWS layananAPI. Ketika klien memanggil rute yang didukung oleh integrasi kelas satu, API Gateway memanggil AWS layanan API untuk Anda. Misalnya, Anda dapat menggunakan integrasi kelas satu untuk mengirim pesan ke antrean Amazon Simple Queue Service, 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. APIGateway menggabungkan beberapa nilai header dengan koma, misalnya"header1":
"value1,value2" . |
Nilai string kueri | $request.querystring.name |
Nama string kueri peka huruf besar/kecil. APIGateway 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 | APIGateway melewati seluruh badan permintaan. |
Isi permintaan | $ request.body.name |
Ekspresi JSON jalur$request.body.. ) dan ekspresi filter (?( ) tidak didukung. catatanSaat Anda menentukan JSON jalur, API Gateway memotong badan permintaan pada 100 KB dan kemudian menerapkan ekspresi pemilihan. 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 IAM peran 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
, konfigurasikan parameter permintaan, dan berikan peran yang memberikan izin API Gateway untuk memanggil layanan terintegrasi. AWS API Tergantung pada subtipe integrasi, parameter permintaan yang berbeda diperlukan. Untuk mempelajari selengkapnya, lihat Referensi subtipe integrasi.
AWS CLI Perintah berikut membuat integrasi yang mengirimkan SQS pesan Amazon.
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 IAM peran 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"