Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Solución de problemas con las integraciones de Lambda para API HTTP

Modo de enfoque
Solución de problemas con las integraciones de Lambda para API HTTP - Amazon API Gateway

A continuación se proporcionan consejos para solucionar errores y problemas que puedan surgir al utilizar AWS LambdaIntegraciones de con API HTTP.

Problema: mi API con una integración de Lambda devuelve {"message":"Internal Server Error"}

Para solucionar el error interno del servidor, agregue la variable de registro $context.integrationErrorMessage al formato de registro y vea sus registros de API HTTP. Para ello, haga lo siguiente:

Para crear un grupo de registros a través de la AWS Management Console
  1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

  2. Elija Log groups (Grupos de registros).

  3. Elija Create log group (Crear grupo de registros).

  4. Escriba un nombre de grupo de registros y, a continuación, elija Create (Crear).

  5. Anote el nombre de recurso de Amazon (ARN) de su grupo de registros. El formato ARN es arn:aws:logs: region: account-id:log-group:log-group-name. Necesita el ARN del grupo de registros para habilitar el registro de acceso a su API HTTP.

Para agregar la variable de registro $context.integrationErrorMessage
  1. Inicie sesión en la consola de API Gateway, en https://console.aws.amazon.com/apigateway.

  2. Elija su API HTTP.

  3. En Monitorización, elija Registro.

  4. Seleccione una etapa de su API.

  5. Elija Edit (Editar) y, a continuación, habilite el registro de acceso.

  6. En Log destination (Destino del registro), introduzca el ARN del grupo de registros que creó en el paso anterior.

  7. En Formato de registro, elija CLF. API Gateway crea un formato de registro de ejemplo.

  8. Agregue $context.integrationErrorMessage al final del formato de registro.

  9. Seleccione Guardar.

Para ver los registros de la API
  1. Generación de registros. Utilice un navegador o curl para invocar su API.

    $curl https://api-id.execute-api.us-west-2.amazonaws.com/route
  2. Inicie sesión en la consola de API Gateway, en https://console.aws.amazon.com/apigateway.

  3. Elija su API HTTP.

  4. En Monitorización, elija Registro.

  5. Seleccione la etapa de la API para la cual habilitó el registro.

  6. Elija View logs in CloudWatch (Ver registros en CloudWatch).

  7. Elija la última secuencia de registro para ver sus registros de API HTTP.

  8. Su entrada de registro debe tener un aspecto similar a este:

    Entrada de registro de CloudWatch Logs que muestra el mensaje de error de integración de Lambda.

Dado que agregamos $context.integrationErrorMessage al formato de registro, vemos un mensaje de error en nuestros registros que resume el problema.

Los registros pueden incluir un mensaje de error diferente que indica que hay un problema con el código de función de Lambda. En ese caso, verifique su código de función de Lambda y compruebe que su función de Lambda devuelva una respuesta en el formato necesario. Si los registros no incluyen un mensaje de error, agregue $context.error.message y $context.error.responseType al formato de registro para obtener más información que le ayude a solucionar problemas.

En este caso, los registros muestran que API Gateway no tenía los permisos necesarios para invocar la función de Lambda.

Cuando crea una integración de Lambda en la consola de API Gateway, API Gateway configura automáticamente los permisos para invocar la función de Lambda. Cuando crea una integración de Lambda mediante la AWS CLI, AWS CloudFormation o un SDK, debe conceder permisos para que API Gateway pueda invocar la función. Los siguientes comandos add-permission conceden permiso para diferentes rutas de API HTTP para invocar una función de Lambda.

ejemplo Ejemplo: para la etapa $default y la ruta $default de una API HTTP
aws lambda add-permission \ --function-name my-function \ --statement-id apigateway-invoke-permissions \ --action lambda:InvokeFunction \ --principal apigateway.amazonaws.com \ --source-arn "arn:aws:execute-api:us-west-2:123456789012:api-id/\$default/\$default"
ejemplo Ejemplo: para la etapa prod y la ruta test de una API HTTP
aws lambda add-permission \ --function-name my-function \ --statement-id apigateway-invoke-permissions \ --action lambda:InvokeFunction \ --principal apigateway.amazonaws.com \ --source-arn "arn:aws:execute-api:us-west-2:123456789012:api-id/prod/*/test"

Confirme la política de la función en la pestaña Permisos de la consola de Lambda.

Intente volver a invocar su API. Debería ver la respuesta de su función de Lambda.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.