Hola usuario de nuestra página web, hallamos la solución a lo que estabas buscando, deslízate y la obtendrás a continuación.
Solución:
Primero, necesitas atrapar el Authorization
encabezado de la solicitud HTTP GET. Luego, debe asignar ese valor al objeto de evento de Lambda.
Vaya al panel de control del método API y haga clic en Solicitud de método. Allí puedes agregar un HTTP Request Header
llamado Authorization
Como se muestra abajo.
Esto atrapará al Authorization
encabezado para que pueda usarlo más tarde.
Ahora regrese al tablero de métodos y haga clic en Integration Request
. Desde aquí, puede pasar el valor del encabezado a la función Lambda mediante una asignación como esta.
"Authorization": "$input.params('Authorization')"
Ahora en su función Lambda puede obtener un valor como este.
event.Authorization
Puede utilizar la siguiente plantilla de asignación en la solicitud de integración para asignar de forma genérica todos los parámetros de ruta, consulta y encabezado en el evento de Lambda. Aún deberá registrarlos en la sección Solicitud de método de API Gateway, pero al menos puede desvincular la plantilla de asignación de los parámetros específicos que desea usar. De esta forma, no tendrá que cambiar el código de la plantilla de asignación cada vez que cambie los encabezados, la consulta o los parámetros de la ruta.
Escribí una publicación de blog que brinda más detalles y alguna explicación de la plantilla de mapeo: http://kennbrodhagen.net/2015/12/06/how-to-create-a-request-object-for-your-lambda-event -desde-api-gateway/
Aquí está la plantilla de mapeo que puede usar:
"method": "$context.httpMethod",
"body" : $input.json('$'),
"headers":
#foreach($param in $input.params().header.keySet())
"$param": "$util.escapeJavaScript($input.params().header.get($param))" #if($foreach.hasNext),#end
#end
,
"queryParams":
#foreach($param in $input.params().querystring.keySet())
"$param": "$util.escapeJavaScript($input.params().querystring.get($param))" #if($foreach.hasNext),#end
#end
,
"pathParams":
#foreach($param in $input.params().path.keySet())
"$param": "$util.escapeJavaScript($input.params().path.get($param))" #if($foreach.hasNext),#end
#end
Necesita crear un mapeo de entrada dentro Integration Request
panel en la pantalla del tablero que describe su método API.
El siguiente código se traduce name
parámetro de entrada de consulta en Lambda Event input object
:
"name": "$input.params('name')"
Captura de pantalla:
Puede encontrar más información sobre esto en el hilo de entrada original de API Gateway to Lambda en los foros de AWS.
Sección de Reseñas y Valoraciones
Nos puedes añadir valor a nuestra información tributando tu experiencia en las explicaciones.