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

Última actualización: 17/10/2022

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

¿Cómo puedo corregir las invocaciones duplicadas de funciones de Lambda?

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.
  • La función Lambda se invoca de forma sincrónica.
  • Los reintentos se establecieron en 0 en la configuración de invocación asíncrona para una función de Lambda.

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 
      --invocation-type Event
          --cli-binary-format raw-in-base64-out
              --payload '{ "key": "value" }' response.json

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

4.    Revise los registros de Amazon CloudWatch de la función Lambda para ver si las invocaciones duplicadas:

  • Tienen el mismo identificador de solicitud o no.
  • Devolvieron errores o expiraron.

Para obtener más información, consulte ¿Cómo puedo evitar las invocaciones duplicadas de funciones de Lambda?

    5.    Si las invocaciones duplicadas tienen el mismo ID de solicitud y han devuelto errores o se ha agotado el tiempo de espera, configure la gestión de errores para las invocaciones asíncronas. Con esta configuración, puede controlar el número de reintentos que puede realizar el servicio Lambda en caso de error.

    Para obtener más información, consulte Control de errores y reintentos automáticos en AWS Lambda.

    Nota: las invocaciones duplicadas con el mismo ID de solicitud que devuelven errores o se ha agotado el tiempo de espera indican que Lambda ha vuelto a intentar la función.

    6.    Si las invocaciones duplicadas no devolvieron errores ni expiraron, haga lo siguiente:

    • Asegúrese de que el código de la función Lambda sea idempotente y capaz de gestionar los mismos mensajes varias veces.
    • Asegúrese de que la función Lambda tenga establecido un límite de simultaneidad lo suficientemente alto como para gestionar el número de solicitudes de invocación que recibe.
    • 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?

    Nota: si las invocaciones duplicadas provienen del lado del cliente, los ID de solicitud serán diferentes.

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

    • El nombre de recurso de Amazon (ARN) de la función Lambda.
    • 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.


    ¿Le resultó útil este artículo?


    ¿Necesita asistencia técnica o con la facturación?