

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Test e debug di funzioni durevoli
<a name="test-and-debug-durable-functions"></a>

Il test e il debug delle funzioni durevoli a livello locale funzionano in modo simile alle normali funzioni Lambda, con supporto automatico per checkpoint e replay. Questa guida illustra gli scenari di test e le tecniche di risoluzione dei problemi più comuni.

## Flusso di lavoro di test locale
<a name="test-and-debug-durable-functions-workflow"></a>

Quando si testano funzioni durevoli a livello locale, il flusso di lavoro è diverso dalle normali funzioni Lambda:

**Flusso di lavoro durevole per la verifica**

1. Crea la tua applicazione:

   ```
   $ sam build
   ```

1. Invoca la tua funzione duratura:

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

1. Controlla la cronologia delle esecuzioni, se necessario:

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

## Scenari di test comuni
<a name="test-and-debug-durable-functions-scenarios"></a>

### Test del comportamento dei checkpoint
<a name="test-and-debug-durable-functions-scenarios-checkpoints"></a>

Per verificare che la tua funzione funzioni correttamente, i checkpoint indicano:

```
# 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"}
```

Quando si richiama questa funzione localmente, il periodo di attesa viene gestito automaticamente.

### Scenari di callback di test
<a name="test-and-debug-durable-functions-scenarios-callbacks"></a>

Per le funzioni che attendono callback esterni:

1. Avvia la tua funzione duratura che attende una richiamata

1. In un altro terminale, risolvi il callback:

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

1. Osserva che la funzione riprende l'esecuzione

## Risoluzione dei problemi
<a name="test-and-debug-durable-functions-troubleshooting"></a>

### Funzione durevole che non viene eseguita correttamente
<a name="test-and-debug-durable-functions-troubleshooting-config"></a>

**Problema:** la funzione non si comporta come una funzione durevole.

**Soluzioni:**
+ Verifica che `DurableConfig` sia impostato nel tuo modello SAM
+ Assicurati che il codice della funzione utilizzi metodi SDK per funzioni durevoli (ad esempio,`context.wait()`)
+ Verifica di utilizzare un runtime supportato (TypeScript, JavaScript, Python)

### Impossibile recuperare la cronologia delle esecuzioni
<a name="test-and-debug-durable-functions-troubleshooting-history"></a>

**Problema:** il `local execution history` comando non restituisce risultati.

**Soluzioni:**
+ Verifica che l'ID di esecuzione sia corretto
+ Verifica che la funzione sia stata richiamata almeno una volta

### I comandi di callback non funzionano
<a name="test-and-debug-durable-functions-troubleshooting-callbacks"></a>

**Problema:** i comandi di callback non risolvono le operazioni in sospeso.

**Soluzioni:**
+ Verifica che l'ID di callback sia corretto
+ Assicurati che la funzione sia effettivamente in attesa di una richiamata
+ Verifica di utilizzare la sintassi corretta del comando di callback

## Suggerimenti per il debug
<a name="test-and-debug-durable-functions-debugging"></a>
+ **Usa la cronologia di esecuzione**: esamina la cronologia delle esecuzioni per comprendere il flusso della tua funzione duratura
+ **Esegui test in modo incrementale**: inizia con semplici operazioni di attesa prima di aggiungere una logica complessa
+ **Usa la registrazione dettagliata: abilita la registrazione** dettagliata per tracciare il flusso di esecuzione

## Ulteriori informazioni
<a name="test-and-debug-durable-functions-learn"></a>

Per ulteriori informazioni su test e debug, consulta:
+ [Introduzione ai test con sam local invoke](using-sam-cli-local-invoke.md)- Documentazione locale sulle invoke
+ [sam local execution history](sam-cli-command-reference-sam-local-execution-history.md)- Cronologia delle esecuzioni