Configurare una risorsa proxy con integrazione del proxy Lambda con una definizione aperta API - Amazon API Gateway

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurare una risorsa proxy con integrazione del proxy Lambda con una definizione aperta API

Per configurare una risorsa proxy con il tipo di integrazione proxy Lambda, crea una API risorsa con un parametro greedy path (ad esempio/parent/{proxy+}) e integra questa risorsa con un backend della funzione Lambda (ad esempio) sul metodo. arn:aws:lambda:us-west-2:123456789012:function:SimpleLambda4ProxyResource ANY Il parametro greedy path deve trovarsi alla fine del percorso della risorsa. API Analogamente a una risorsa non proxy, è possibile configurare la risorsa proxy utilizzando la console API Gateway, importando un file Open API definition o chiamando direttamente il API Gateway. REST API

Il seguente file di API API definizione aperta mostra un esempio di risorsa API con un proxy integrata con una funzione Lambda denominata. 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" } } } } }

Nell'integrazione del proxy Lambda, in fase di esecuzione, API Gateway mappa una richiesta in entrata nel event parametro di input della funzione Lambda. L'input include il metodo della richiesta, il percorso, le intestazioni, qualsiasi parametro della stringa di query, qualsiasi payload, il contesto associato e qualsiasi variabile di fase definita. Il formato di input viene descritto in Formato di input di una funzione Lambda per l'integrazione proxy. APIAffinché Gateway mappi correttamente l'output Lambda alle HTTP risposte, la funzione Lambda deve restituire il risultato nel formato descritto in. Formato di output di una funzione Lambda per l'integrazione proxy

Con l'integrazione proxy Lambda di una risorsa proxy tramite il metodo ANY, la singola funzione Lambda back-end funge da gestore eventi per tutte le richieste attraverso la risorsa proxy. Ad esempio, per registrare i modelli di traffico, è possibile fare in modo che un dispositivo mobile invii informazioni sulla posizione dello stato, della città, della via e dell'edificio inviando una richiesta /state/city/street/house nel URL percorso della risorsa proxy. La funzione Lambda di backend può quindi analizzare URL il percorso e inserire le tuple di posizione in una tabella DynamoDB.