Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
¿Cómo envío los encabezados personalizados a través de API Gateway a una función de Lambda con integración personalizada de Lambda (sin proxy)?
Quiero configurar una función de AWS Lambda mediante una integración personalizada (sin proxy) para procesar los encabezados personalizados que se transfieren a través de mi API de Amazon API Gateway.
Descripción corta
De forma predeterminada, una función de Lambda procesa solo el cuerpo de la solicitud del método que recibe de una solicitud de API de API Gateway. Para enviar encabezados personalizados de una API de API Gateway a una función de Lambda, usa una plantilla de asignación de cuerpo. La API primero envía la solicitud de API actualizada a una función de Lambda para procesar los encabezados. A continuación, la función de Lambda devuelve uno o más valores de encabezado de la solicitud de API original.
Resolución
Configurar los permisos de IAM necesarios
Sigue las instrucciones de Controlar el acceso a una API de REST con permisos de IAM.
Para probar este procedimiento, crea un rol de AWS Identity and Access Management (IAM) y, a continuación, adjunta las políticas administradas por AWS AmazonAPIGatewayInvokeFullAccess y AmazonAPIGatewayPushToCloudWatchLogs. Para obtener más información, consulta Políticas administradas de AWS.
Crea una función de Lambda para gestionar los encabezados personalizados de tu API de API Gateway
Sigue estos pasos:
- Abre la consola de Lambda.
- Elige Crear una función. La página Crear función se abre con la opción Crear desde cero seleccionada.
- En el panel Información básica, haz las siguientes acciones:
En Nombre de la función, introduce un nombre que describa el propósito de la función. Por ejemplo: EncabezadosPersonalizados.
En Versión ejecutable, elige Node.js 20.x. - Para Permisos, expande Cambiar el rol de ejecución predeterminado.
- Elige Usar un rol existente. Aparece una lista desplegable de los roles existentes.
- En Rol existente, elige la función de ejecución de Lambda que creaste anteriormente.
- Elige Crear una función.
- En el panel Código fuente, sustituye el código index.mjs en el panel del editor por el siguiente código:
Selecciona Desplegar.export const handler = async (event, context, callback) => { callback(null, "The custom header " +event.headers["header1"] +" has been processed successfully by AWS Lambda via Amazon API Gateway"); };
Para obtener más información, consulta Creación de funciones de Lambda con Node.js.
Creación de una API de REST en API Gateway
Sigue estos pasos:
- Abre la consola de API Gateway.
- Selecciona Crear API.
-o-
Si es la primera vez que usas API Gateway, aparecerá una página que te presentará las características de API Gateway. En API de REST, selecciona Crear. - En la sección Crear API de REST, selecciona Nueva API en Detalles de la API.
- En Nombre de la API, introduce un nombre que describa la finalidad de la API. Por ejemplo: EnviarALambda.
(Opcional) En Descripción, introduce una breve descripción de la finalidad de la API.
En Tipo de punto de enlace, selecciona Regional. - Selecciona Crear API.
Configuración de la plantilla de asignación de cuerpo y punto de integración de la API
Sigue estos pasos:
-
Abre la consola de API Gateway.
-
Elige el nombre de la API que creaste anteriormente. Se abre la página Recursos de la API.
-
En la página Recursos, selecciona Crear recurso.
-
En el panel Crear recurso, haz las siguientes acciones:
En Nombre del recurso, introduce un nombre que describa el recurso. Por ejemplo: RecursoEncabezados.
Selecciona Crear recurso. -
Selecciona el recurso que creaste y, a continuación, selecciona Crear método.
-
En el panel Crear método, haz las siguientes acciones:
Para Tipo de método, selecciona POST en la lista desplegable.
Para Tipo de integración, selecciona Función de Lambda.
Confirma que la opción Integración del proxy de Lambda esté deshabilitada.
Para Función de Lambda, selecciona la región de AWS que aloja la función y, a continuación, introduce el nombre de la función de Lambda o el nombre de recurso de Amazon (ARN).
Selecciona Crear método. Esta acción otorga automáticamente permiso a API Gateway para invocar la función de Lambda. -
Selecciona POST para el método de recurso que creaste en el paso anterior. A continuación, en el panel Ejecución de método, selecciona Solicitud de integración.
-
En el panel Solicitud de integración, selecciona Editar y, a continuación, haz las siguientes acciones:
Para Transferencia del cuerpo de la solicitud, selecciona Cuando no haya plantillas definidas (recomendado).
Amplíe Plantillas de asignación en la parte inferior del panel.
Seleccione Agregar plantilla de mapeo.
En Content-Type, introduce application/json. -
En el editor Cuerpo de la plantilla, introduce lo siguiente:
{ "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 } }
-
Selecciona Guardar.
Implementación de la API en una nueva etapa
Sigue estos pasos:
- Sigue las instrucciones para desplegar una API de REST en una etapa. Para obtener más información, consulta Configurar una etapa para una API de REST en API Gateway.
- Selecciona el botón Implementar API.
- En la ventana emergente Implementar API, introduce un nombre nuevo para la etapa y, a continuación, selecciona Implementar.
- Amplíe la etapa en el panel Etapas para ver el recurso y el método que creaste en los pasos anteriores.
- Elige POST como método de recurso y copia la URL de invocación en el portapapeles.
Ejemplo de URL de invocación de una API de REST
https://1a2bc3d456.execute-api.region.amazonaws.com/stageName/resourceName
Prueba de configuración
Para confirmar que la API y la función Lambda están procesando los encabezados, ejecuta el siguiente comando de curl:
curl -H "Content-Type: application/json" -H "header1: value1" -X POST -d "{\"API_body\": \"This is the body\"}" https://restApiId.execute-api.region.amazonaws.com/stageName/resourceName
Nota: Sustituye https://restApiId.execute-api.region.amazonaws.com/stageName/resourceName por la URL de invocación de la API.
Resultado de ejemplo
"The custom header value1 has been processed successfully by AWS Lambda via Amazon API Gateway"
Nota: Para instalar curl en Windows, consulta Descargas en el sitio web de Git. Para obtener más información sobre curl, consulta el sitio web del proyecto curl.
Información relacionada
Configurar transformaciones de datos en API Gateway

Contenido relevante
- preguntada hace 3 meseslg...
- preguntada hace 3 meseslg...
- preguntada hace 2 meseslg...
- Respuesta aceptadapreguntada hace un meslg...
- preguntada hace 7 horaslg...
- OFICIAL DE AWSActualizada hace 3 años
- OFICIAL DE AWSActualizada hace 5 meses
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 2 años