Test e debug di funzioni durevoli - AWS Serverless Application Model

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
  1. Crea la tua applicazione:

    $ sam build
  2. Invoca la tua funzione duratura:

    $ sam local invoke MyDurableFunction --durable-execution-name test
  3. Controlla la cronologia delle esecuzioni, se necessario:

    $ sam local execution history execution-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:

  1. Avvia la tua funzione duratura che attende una richiamata

  2. In un altro terminale, risolvi il callback:

    $ sam local callback succeed callback-id
  3. 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 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

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: