0Pricing
AWS Solutions Architect · Lección

Integraciones: Lambda, HTTP y Mock

Conecte los métodos de API Gateway con integraciones proxy de Lambda, endpoints HTTP ascendentes e integraciones simuladas para pruebas.

Integraciones: Lambda, HTTP y Mock es una lección gratuita de AWS Solutions Architect en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AWS Solutions Architect, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AWS Solutions Architect incluye 4 lecciones en total.

Descripción general de los tipos de integración de API Gateway

Cada método de API Gateway necesita una integración de backend: el sistema que procesa la solicitud y devuelve una respuesta. API Gateway admite cinco tipos de integración: Lambda Proxy, Lambda Custom, HTTP Proxy, HTTP Custom y Mock. HTTP APIs solo admiten Lambda Proxy y HTTP Proxy. REST APIs admiten los cinco. Elegir la integración adecuada determina cuánto control tiene sobre la transformación de la solicitud y la respuesta.

Integración Lambda Proxy

Con la integración Lambda Proxy, API Gateway transmite la solicitud HTTP completa a Lambda como un objeto de evento estructurado que incluye encabezados, cadenas de consulta, parámetros de ruta, cuerpo y contexto. Su función de Lambda debe devolver un objeto de respuesta con el formato correcto, que incluya statusCode, headers y body. Este es el patrón más sencillo y habitual: no requiere plantillas de mapeo y Lambda controla toda la respuesta.

def lambda_handler(event, context):
    # event.httpMethod, event.path, event.queryStringParameters
    # event.headers, event.body
    user_id = event['pathParameters']['userId']
    return {
        'statusCode': 200,
        'headers': {'Content-Type': 'application/json'},
        'body': '{"userId": "' + user_id + '", "name": "Alice"}'
    }

Integración Lambda no proxy (personalizada)

Con la integración Lambda Non-Proxy (personalizada), API Gateway utiliza plantillas de mapeo (Apache Velocity Template Language, VTL) para transformar la solicitud antes de enviarla a Lambda y transforma la respuesta de Lambda antes de devolverla al cliente. Su función de Lambda recibe un payload personalizado y limpio, no el evento sin procesar de API Gateway. Esto separa las cuestiones de transporte de la lógica de negocio, pero requiere mantener las plantillas VTL. Utilice la integración personalizada cuando desee separar estrictamente el contrato entre la API y el backend.

## Integration Request Mapping Template (VTL)
#set($inputRoot = $input.path('$'))
{
  'userId': '$input.params('userId')',
  'action': '$inputRoot.action',
  'timestamp': '$context.requestTime'
}

Integración HTTP Proxy

La integración HTTP Proxy reenvía las solicitudes directamente a un endpoint HTTP externo (que puede ser una instancia de EC2, un ALB, un servidor local o cualquier URL pública) sin transformarlas. API Gateway transmite la solicitud y devuelve al cliente la respuesta del backend. Es ideal para migrar backends REST existentes detrás de API Gateway y añadir limitación de velocidad, supervisión y claves de API sin cambiar el código del backend. Admite backends HTTPS con verificación de certificados.

# Create HTTP proxy integration via REST API
aws apigateway put-integration \
  --rest-api-id 'abc123' \
  --resource-id 'xyz789' \
  --http-method GET \
  --type HTTP_PROXY \
  --integration-http-method GET \
  --uri 'https://my-backend.example.com/api/users/{userId}'

Integración HTTP personalizada (no proxy)

La integración HTTP Custom también reenvía las solicitudes a un endpoint HTTP externo, pero utiliza plantillas de mapeo para transformar tanto la solicitud que se envía al backend como la respuesta que se recibe. Resulta útil cuando la interfaz de API Gateway y la API de backend tienen contratos diferentes: puede traducir una llamada a una API REST a un formato SOAP heredado o personalizado, y transformar la respuesta del backend en una estructura JSON limpia para el cliente. Esto añade complejidad, pero proporciona el máximo control para las integraciones con sistemas heredados.

Integración con servicios de AWS

La integración con AWS Service conecta API Gateway directamente con los servicios de AWS sin un intermediario de Lambda. Por ejemplo, puede configurar un endpoint POST que escriba directamente un mensaje en SQS, lo publique en SNS o inicie una ejecución de Step Functions. Esto reduce la latencia y elimina los costes de las funciones de Lambda para operaciones de enrutamiento sencillas. La integración requiere configurar un rol de IAM y plantillas de mapeo para dar el formato correcto a la llamada a la API de AWS.

# Direct API Gateway → SQS integration
# Integration Request URI:
https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue

# Integration Request Body Mapping Template:
Action=SendMessage&MessageBody=$input.body

Integración simulada para desarrollo y pruebas

La integración simulada configura API Gateway para devolver una respuesta predefinida sin llamar a ningún backend. La respuesta se define en la plantilla de asignación de la respuesta de integración. Las integraciones simuladas son ideales para: desarrollar la API antes de crear el backend (los equipos de frontend pueden empezar de inmediato), probar unitariamente las configuraciones de la API, devolver encabezados CORS estándar o proporcionar un stub para socios externos durante el desarrollo. Los endpoints simulados también pueden utilizarse para bloquear versiones obsoletas de una API devolviendo 410 Gone.

# Integration Response for Mock
# Integration Response Mapping Template:
{
  'statusCode': 200,
  'message': 'This is a mock response',
  'timestamp': '$context.requestTime'
}

# Method Response: map status code 200 to this template

Configuración de CORS en API Gateway

CORS (Cross-Origin Resource Sharing) debe habilitarse cuando un cliente de navegador ubicado en un dominio llama a su API ubicada en otro dominio. HTTP API ofrece una configuración de CORS con un solo clic; REST API requiere crear un método OPTIONS con una integración simulada que devuelva los encabezados CORS necesarios (Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Headers). La integración de proxy de Lambda también requiere que Lambda devuelva encabezados CORS en su respuesta.

# HTTP API CORS config (simple)
aws apigatewayv2 update-api \
  --api-id 'abc123' \
  --cors-configuration '{
    "AllowOrigins": ["https://myapp.example.com"],
    "AllowMethods": ["GET", "POST", "OPTIONS"],
    "AllowHeaders": ["Content-Type", "Authorization"]
  }'

Validación de solicitudes en REST API

REST API admite la validación de solicitudes: API Gateway puede validar que los parámetros obligatorios de la cadena de consulta, los encabezados y el esquema del cuerpo de la solicitud estén presentes y tengan el formato correcto, antes de invocar el backend. Esto reduce las invocaciones innecesarias de Lambda causadas por solicitudes mal formadas y devuelve automáticamente errores 400 estandarizados. Defina un modelo de solicitud mediante JSON Schema y asígnelo al método para habilitar la validación del cuerpo. La validación de solicitudes no está disponible en HTTP API.

Tiempos de espera de las integraciones

API Gateway tiene un tiempo de espera de integración predeterminado de 29 segundos para REST API y HTTP API (el máximo para REST API y fijo para el proxy de HTTP API). Si el backend tarda más de 29 segundos, API Gateway devuelve un error 504 Gateway Timeout. Esto significa que las funciones de Lambda invocadas sincrónicamente mediante API Gateway deben completarse en 29 segundos, aunque Lambda admita tiempos de espera de hasta 15 minutos. Para operaciones de larga duración, utilice un patrón asíncrono: API Gateway activa Lambda, que inicia un trabajo asíncrono y devuelve inmediatamente un ID de trabajo.

Elegir el tipo de integración adecuado

Guía para elegir el tipo de integración: Lambda Proxy: la opción más común y sencilla, con control total de la solicitud en Lambda; Lambda Custom: cuando necesita transformar la solicitud o la respuesta en la capa de gateway; HTTP Proxy: para backends HTTP existentes y escenarios de migración; HTTP Custom: para traducir formatos de API heredados; AWS Service: para eliminar Lambda en el enrutamiento sencillo a SQS/SNS/DynamoDB; Mock: para stubs de desarrollo y solicitudes de comprobación previa de CORS. En el examen SAA-C03, los patrones Lambda Proxy y HTTP Proxy son los que se evalúan con mayor frecuencia.

Comprobación rápida

Compruebe su comprensión de los conceptos de AWS Solutions Architect (SAA-C03) de esta lección.

Resumen de la lección

En esta lección ha aprendido lo siguiente: la integración Lambda Proxy pasa la solicitud completa a Lambda, que controla la respuesta; es la integración más sencilla y común. HTTP Proxy reenvía las solicitudes a backends HTTP existentes para añadir funciones de API Gateway sin modificar el backend. La integración simulada devuelve respuestas predefinidas para el desarrollo y las pruebas del frontend sin ninguna infraestructura de backend. A continuación, exploraremos la autorización de API Gateway con IAM, los autorizadores de Lambda y Cognito.

Preguntas frecuentes

¿La lección «Integraciones: Lambda, HTTP y Mock» es gratis?

Sí — el texto completo de «Integraciones: Lambda, HTTP y Mock» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AWS Solutions Architect, actualiza a CoddyKit PRO. El curso de AWS Solutions Architect incluye 4 lecciones en total.

¿Qué aprenderé en «Integraciones: Lambda, HTTP y Mock»?

Conecte los métodos de API Gateway con integraciones proxy de Lambda, endpoints HTTP ascendentes e integraciones simuladas para pruebas. Practicas AWS Solutions Architect con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AWS Solutions Architect?

No se requiere experiencia previa. AWS Solutions Architect en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Integraciones: Lambda, HTTP y Mock»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AWS Solutions Architect?

Sí. Cada lección de AWS Solutions Architect incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. REST API frente a HTTP API y WebSocket API
  2. Integraciones: Lambda, HTTP y Mock
  3. Autorización: IAM, Lambda Authorizers y Cognito
  4. Limitación, almacenamiento en caché y planes de uso
← Volver a AWS Solutions Architect