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
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
Quando si testano funzioni durevoli a livello locale, il flusso di lavoro è diverso dalle normali funzioni Lambda:
Flusso di lavoro durevole per la verifica
-
Crea la tua applicazione:
$sam build -
Invoca la tua funzione duratura:
$sam local invoke MyDurableFunction --durable-execution-name test -
Controlla la cronologia delle esecuzioni, se necessario:
$sam local execution historyexecution-id
Scenari di test comuni
Test del comportamento dei checkpoint
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
Per le funzioni che attendono callback esterni:
-
Avvia la tua funzione duratura che attende una richiamata
-
In un altro terminale, risolvi il callback:
$sam local callback succeedcallback-id -
Osserva che la funzione riprende l'esecuzione
Risoluzione dei problemi
Funzione durevole che non viene eseguita correttamente
Problema: la funzione non si comporta come una funzione durevole.
Soluzioni:
-
Verifica che
DurableConfigsia 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
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
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
-
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
Per ulteriori informazioni su test e debug, consulta:
-
Introduzione ai test con sam local invoke- Documentazione locale sulle invoke
-
sam local execution history- Cronologia delle esecuzioni