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
-
Cree su aplicación:
$sam build -
Invoque su función duradera:
$sam local invoke MyDurableFunction --durable-execution-name test -
Compruebe el historial de ejecución si es necesario:
$sam local execution historyexecution-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:
-
Inicie su función duradera que espera una devolución de llamada
-
En otro terminal, resuelve la devolución de llamada:
$sam local callback succeedcallback-id -
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
DurableConfigesté 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:
-
Introducción a las pruebas con sam local invoke- Documentación de invocación local
-
sam local execution history- Historial de ejecuciones