

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
<a name="test-and-debug-durable-functions"></a>

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
<a name="test-and-debug-durable-functions-workflow"></a>

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
   ```

1. Invoque su función duradera:

   ```
   $ sam local invoke MyDurableFunction --durable-execution-name test 
   ```

1. Compruebe el historial de ejecución si es necesario:

   ```
   $ sam local execution history execution-id
   ```

## Escenarios de prueba comunes
<a name="test-and-debug-durable-functions-scenarios"></a>

### Probar el comportamiento de los puntos de control
<a name="test-and-debug-durable-functions-scenarios-checkpoints"></a>

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
<a name="test-and-debug-durable-functions-scenarios-callbacks"></a>

Para las funciones que esperan llamadas externas:

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

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

   ```
   $ sam local callback succeed callback-id
   ```

1. Observe cómo se reanuda la ejecución de la función

## Resolución de problemas
<a name="test-and-debug-durable-functions-troubleshooting"></a>

### La función duradera no se ejecuta correctamente
<a name="test-and-debug-durable-functions-troubleshooting-config"></a>

**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
<a name="test-and-debug-durable-functions-troubleshooting-history"></a>

**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
<a name="test-and-debug-durable-functions-troubleshooting-callbacks"></a>

**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
<a name="test-and-debug-durable-functions-debugging"></a>
+ **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
<a name="test-and-debug-durable-functions-learn"></a>

Para obtener más información sobre las pruebas y la depuración, consulte:
+ [Introducción a las pruebas con sam local invoke](using-sam-cli-local-invoke.md)- Documentación de invocación local
+ [sam local execution history](sam-cli-command-reference-sam-local-execution-history.md)- Historial de ejecuciones