Uso el marco sin servidor para implementar mis funciones lambda. Serverless usa API Gateway para hacer mis puntos finales. Sé que es posible pasar los parámetros en métodos como GET y usarlos en lambda usando el objeto de evento. La interfaz ya está implementada y estaban usando la siguiente URL para llamar a un punto final:
example.com/api/EG43 `exports.myHandler = async function(event, context) { ... // somehow access the URL which was used by the frontend // to grab that EG43 and then return the result based on that key. // return information to the caller. }que EG43 es una clave que el backend anterior devolvía el resultado basado en esa clave. Mi pregunta es si es posible saber de alguna manera cuál es la URL. el siguiente documento de AWS muestra los parámetros que se pueden leer usando los argumentos del controlador, pero no tiene URL.
https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html
Debería poder acceder a estos detalles de dos maneras:
una. Configure una plantilla de mapeo y pase los detalles que necesita como parte de la carga útil. La plantilla de mapeo es una plantilla de velocidad con ciertas variables accesibles. Vea esto para obtener detalles de a lo que puede acceder.
b. Puede configurar el lambda en el modo de integración de proxy. Con esto tienes acceso a la solicitud sin procesar. Ver esto para más detalles .
Así es como debe configurar Lambda en el modo de integración de proxy:
Y cuando Lambda está configurada en forma de integración de proxy, esto es lo que obtiene en el evento:
{ "resource": "/abc/version/test", "path": "/abc/version/test", "httpMethod": "GET", "headers": null, "queryStringParameters": null, "pathParameters": null, "stageVariables": null, "requestContext": { "path": "/abc/version/test", "accountId": "1234", "resourceId": "resourceId", "stage": "Stage", "requestId": "AWS Request ID", "identity": { "cognitoIdentityPoolId": null, "cognitoIdentityId": null, "apiKey": "API Key", "cognitoAuthenticationType": null, "userArn": "arn:aws:iam::<acc_Id>:user/yogesh", "apiKeyId": "api-key-id", "userAgent": "aws-internal/3", "accountId": "<AccId>", "caller": "<Some caller ID>", "sourceIp": "test-invoke-source-ip", "accessKey": "<Access Key>", "cognitoAuthenticationProvider": null, "user": "<Some User Id>" }, "resourcePath": "/abc/version/test", "httpMethod": "GET", "extendedRequestId": "test-invoke-extendedRequestId", "apiId": "API ID, is typically the API GW ID" }, "body": null, "isBase64Encoded": false }