¿Cómo puedo solucionar los problemas de invocación sincrónica de Lambda?

3 minutos de lectura
0

He configurado una función de AWS Lambda para que se invoque de forma sincrónica pero el destino no se inicia. ¿Cómo puedo solucionar este problema? Al invocar una función Lambda a través de la consola Lambda, ¿se invoca de forma sincrónica o asincrónica? -o bien- ¿Por qué no se vuelve a intentar mi función de Lambda después de configurarla para que se vuelva a intentar una o dos veces más?

Resolución

Cuando se invoca de forma sincrónica una función de Lambda y se produce un error, las causas posibles son las siguientes:

  • Lambda no tiene permiso para realizar las acciones incluidas en el código.
  • El servicio de AWS que invoca la función Lambda no tiene suficientes permisos.
  • Lambda se invoca de forma asíncrona.
  • Lambda solo es compatible con destinos para invocaciones asíncronas e invocaciones de flujo y no para invocaciones síncronas.

Siga estos pasos para solucionar problemas de invocación sincrónica:

1.    Determine cómo se invoca la función Lambda. ¿Se invoca la función mediante AWS CLI? ¿Se invoca la función mediante un servicio de AWS?

2.    Compruebe si el servicio de AWS invoca la función Lambda de forma sincrónica o asincrónica.

3.    Invoque la función Lambda de forma sincrónica utilizando el siguiente comando:

aws lambda invoke --function-name my-function --cli-binary-format raw-in-base64-out --payload '{ "key": "value" }' response.json

Compruebe si se informa de un código de estado 200 o si el comando devuelve un error.

4.    Recuerde que es el cliente quien controla el comportamiento de reintento de la función Lambda en las invocaciones sincrónicas. LLa configuración de los intentos de reintento desde la consola de AWS Lambda está limitada a las invocaciones asíncronas. Asegúrese de que el cliente reintenta las solicitudes en lugar de comprobar los registros de Lambda.

5.    Recuerde que una función Lambda invocada en la consola Lambda es siempre una invocación sincrónica.

6.    El comportamiento de reintento de invocación síncrona varía entre los servicios de AWS, en función del mapeo de fuentes de eventos de cada servicio.

Para obtener más información, consulte Invocación basada en eventos.

7.    Asegúrese de que el código de la función Lambda sea idempotente y capaz de gestionar los mismos mensajes varias veces.

8.    Identifique y resuelva cualquier error que muestre la función Lambda.

Para obtener más información, consulte ¿Cómo puedo solucionar los errores derivados de la función Lambda?

9.    Si sigue sin poder resolver el problema, abra un caso con AWS Support. Proporcione la siguiente información en el caso:

  • La función Lambda ARN.
  • El flujo de trabajo en la configuración de la función Lambda con todos los servicios incluidos.
  • Detalles sobre si el problema es ocasional o continuo.
  • Registros completos de CloudWatch en formato .txt desde que se produjo el problema. Estos registros de CloudWatch se utilizan para identificar errores de la función Lambda que incluyen problemas de tiempo de espera, duraciones iniciales y problemas de permisos.
  • La marca de tiempo exacta del problema con la zona horaria o marca de tiempo en UTC.

Nota: Por motivos de seguridad y privacidad, los representantes de AWS Support no tienen acceso a los registros de CloudWatch de los clientes.


Información relacionada

Comparativa de los modos de invocación de Lambda

Invocación de funciones Lambda

Presentación de los destinos de AWS Lambda

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año