Siapkan sumber daya proxy dengan integrasi proxy Lambda dengan definisi Terbuka API - APIGerbang Amazon

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

Siapkan sumber daya proxy dengan integrasi proxy Lambda dengan definisi Terbuka API

Untuk menyiapkan sumber daya proxy dengan tipe integrasi proxy Lambda, buat API sumber daya dengan parameter jalur serakah (misalnya,/parent/{proxy+}) dan integrasikan sumber daya ini dengan backend fungsi Lambda (misalnya,) pada metode. arn:aws:lambda:us-west-2:123456789012:function:SimpleLambda4ProxyResource ANY Parameter jalur serakah harus berada di ujung jalur API sumber daya. Seperti sumber daya non-proxy, Anda dapat mengatur sumber daya proxy menggunakan konsol API Gateway, mengimpor file API definisi Terbuka, atau memanggil API Gateway REST API secara langsung.

File API API definisi Terbuka berikut menunjukkan contoh API dengan sumber daya proxy yang terintegrasi dengan fungsi Lambda bernama. SimpleLambda4ProxyResource

OpenAPI 3.0
{ "openapi": "3.0.0", "info": { "version": "2016-09-12T17:50:37Z", "title": "ProxyIntegrationWithLambda" }, "paths": { "/{proxy+}": { "x-amazon-apigateway-any-method": { "parameters": [ { "name": "proxy", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": {}, "x-amazon-apigateway-integration": { "responses": { "default": { "statusCode": "200" } }, "uri": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:123456789012:function:SimpleLambda4ProxyResource/invocations", "passthroughBehavior": "when_no_match", "httpMethod": "POST", "cacheNamespace": "roq9wj", "cacheKeyParameters": [ "method.request.path.proxy" ], "type": "aws_proxy" } } } }, "servers": [ { "url": "https://gy415nuibc.execute-api.us-east-1.amazonaws.com/{basePath}", "variables": { "basePath": { "default": "/testStage" } } } ] }
OpenAPI 2.0
{ "swagger": "2.0", "info": { "version": "2016-09-12T17:50:37Z", "title": "ProxyIntegrationWithLambda" }, "host": "gy415nuibc.execute-api.us-east-1.amazonaws.com", "basePath": "/testStage", "schemes": [ "https" ], "paths": { "/{proxy+}": { "x-amazon-apigateway-any-method": { "produces": [ "application/json" ], "parameters": [ { "name": "proxy", "in": "path", "required": true, "type": "string" } ], "responses": {}, "x-amazon-apigateway-integration": { "responses": { "default": { "statusCode": "200" } }, "uri": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:123456789012:function:SimpleLambda4ProxyResource/invocations", "passthroughBehavior": "when_no_match", "httpMethod": "POST", "cacheNamespace": "roq9wj", "cacheKeyParameters": [ "method.request.path.proxy" ], "type": "aws_proxy" } } } } }

Dalam integrasi proxy Lambda, pada waktu berjalan, API Gateway memetakan permintaan masuk ke event parameter input fungsi Lambda. Input mencakup metode permintaan, jalur, header, parameter string kueri apa pun, payload apa pun, konteks terkait, dan variabel tahap yang ditentukan. Format input dijelaskan dalamFormat input fungsi Lambda untuk integrasi proxy. Agar API Gateway berhasil memetakan output Lambda ke HTTP respons, fungsi Lambda harus menampilkan hasil dalam format yang dijelaskan dalam. Format keluaran fungsi Lambda untuk integrasi proxy

Dalam integrasi proxy Lambda dari sumber daya proxy melalui ANY metode, fungsi Lambda backend tunggal berfungsi sebagai event handler untuk semua permintaan melalui sumber daya proxy. Misalnya, untuk mencatat pola lalu lintas, Anda dapat meminta perangkat seluler mengirim informasi lokasi negara bagian, kota, jalan, dan bangunannya dengan mengirimkan permintaan dengan /state/city/street/house di URL jalur untuk sumber daya proxy. Fungsi backend Lambda kemudian dapat mengurai URL jalur dan memasukkan tupel lokasi ke dalam tabel DynamoDB.