ejemplo aws aws-lambda aws-api-gateway

aws lambda - aws - Asignación de salida Lambda al encabezado de la puerta de enlace API



api gateway ejemplo (4)

A partir de hoy (enero de 2016), funciona simplemente especificando integration.response.body.Location en su caso.

Estoy intentando asignar la salida JSON de una función Lambda al encabezado de una llamada de la puerta de enlace API. Como ejemplo aquí, podemos considerar un escenario de redireccionamiento. Así que me gustaría agregar un encabezado de Location a la respuesta de mi llamada a la puerta de enlace de la API.

Salida JSON de la función Lambda:

{ Location: ''http://google.com'' }

En "Respuesta del método" -> "Encabezados de respuesta" puedo agregar el encabezado de Location al código de estado HTTP deseado.

Luego, en "Respuesta de integración" -> "Asignaciones de encabezado", puedo agregar la asignación para que el encabezado de Location sea algo .

Ahora mi pregunta es ¿qué debería ser este algo ?

Nota: He intentado integration.response.header.Location , o usando "Mapping Templates" pero no he tenido suerte hasta ahora.

Existe la posibilidad de que no sea posible en este momento ( https://forums.aws.amazon.com/thread.jspa?messageID=651482 ), pero como API Gateway / Lambda está evolucionando tan rápidamente en este momento, preguntar de todos modos


Desde los foros de desarrolladores de AWS de hoy (25 de septiembre de 2015), esto todavía no es posible, pero puede venir en el futuro:

API Gateway no admite actualmente la asignación del cuerpo de respuesta de integración a los encabezados de respuesta, pero estamos buscando agregar soporte para esto en el futuro.

Mensaje del foro aquí

Edición de diciembre de 2015 : la función se agregó de acuerdo con una publicación de un empleado de AWS en el hilo vinculado anteriormente. Gracias a Peter Fox por señalarlo.


En realidad, parece que puede acceder a todos los encabezados proporcionados por la respuesta original (si contiene un tipo de Contenido , entonces puede escribir: integration.response.header.Content-type ). Sin embargo, no he encontrado ninguna manera de agregar un nuevo encabezado (excepto estáticamente).


Hoy (12 de noviembre de 2015), estaba buscando cómo pasar el encabezado de ubicación de mi API de back-end a un encabezado de ubicación en la respuesta de integración.

Esta configuración funcionó y pude obtener el encabezado de la ubicación desde la API backend:

Parece que la solución propuesta por Tobias es posible actualmente. Sin embargo, el encabezado de la ubicación apunta a la API de backend y esto no es lo que queremos. Intentaré encontrar una solución para esto y publicarlo aquí.