Prueba y depuración de funciones duraderas - AWS Serverless Application Model

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Prueba y depuración de funciones duraderas

Probar y depurar funciones duraderas a nivel local funciona de forma similar a las funciones Lambda normales, con soporte automático para puntos de control y reproducción. Esta guía cubre los escenarios de prueba y las técnicas de solución de problemas más comunes.

Flujo de trabajo de pruebas locales

Cuando se prueban funciones duraderas a nivel local, el flujo de trabajo es diferente al de las funciones Lambda normales:

Flujo de trabajo de pruebas de funciones duradero
  1. Cree su aplicación:

    $ sam build
  2. Invoque su función duradera:

    $ sam local invoke MyDurableFunction --durable-execution-name test
  3. Compruebe el historial de ejecución si es necesario:

    $ sam local execution history execution-id

Escenarios de prueba comunes

Probar el comportamiento de los puntos de control

Para comprobar que su funcionamiento es correcto, los puntos de control indican:

# Example Python durable function def handler(event, context): # This will create a checkpoint context.wait(10) # Wait 10 seconds # Function resumes here after wait return {"message": "Function resumed after wait"}

Al invocar esta función de forma local, el período de espera se gestiona automáticamente.

Probando escenarios de devolución de llamadas

Para las funciones que esperan llamadas externas:

  1. Inicie su función duradera que espera una devolución de llamada

  2. En otro terminal, resuelve la devolución de llamada:

    $ sam local callback succeed callback-id
  3. Observe cómo se reanuda la ejecución de la función

Resolución de problemas

Función duradera que no se ejecuta correctamente

Problema: la función no se comporta como una función duradera.

Soluciones:

  • Comprueba que DurableConfig esté configurado en tu plantilla SAM

  • Asegúrese de que el código de su función utilice métodos de SDK de funciones duraderas (por ejemplo,context.wait())

  • Comprueba que estás utilizando un entorno de ejecución compatible (TypeScript, JavaScript, Python)

No se puede recuperar el historial de ejecución

Problema: el local execution history comando no devuelve ningún resultado.

Soluciones:

  • Compruebe que el identificador de ejecución es correcto

  • Compruebe que la función se haya invocado al menos una vez

Los comandos callback no funcionan

Problema: los comandos de devolución de llamada no resuelven las operaciones pendientes.

Soluciones:

  • Compruebe que el identificador de devolución de llamada sea correcto

  • Asegúrese de que la función esté realmente esperando una devolución de llamada

  • Compruebe que está utilizando la sintaxis correcta del comando de devolución de llamada

Consejos de depuración

  • Utilice el historial de ejecución: revise el historial de ejecución para comprender el flujo de su función duradera

  • Realice pruebas incrementales: comience con operaciones de espera sencillas antes de añadir una lógica compleja

  • Utilice el registro detallado: habilite el registro detallado para rastrear el flujo de ejecución

Más información

Para obtener más información sobre las pruebas y la depuración, consulte: