In che modo posso risolvere i problemi relativi alla chiamata asincrona di Lambda?

4 minuti di lettura
0

Ho impostato una funzione AWS Lambda da richiamare in modo asincrono, ma la destinazione non viene avviata. In che modo posso risolvere questo problema? Quando richiamo una funzione Lambda tramite la console Lambda, viene richiamata in modo sincrono o asincrono? -oppure- Come posso correggere le invocazioni di funzioni Lambda duplicate?

Risoluzione

Quando si richiama in modo asincrono una funzione Lambda e la chiamata ha esito negativo, le cause possibili sono le seguenti:

  • Lambda non dispone dell'autorizzazione per eseguire le azioni incluse nel codice.
  • Il servizio AWS che richiama la funzione Lambda non dispone di autorizzazioni sufficienti.
  • La funzione Lambda viene richiamata in modo sincrono.
  • I tentativi di riprova sono stati impostati su 0 nella configurazione di richiamo asincrono per le funzioni Lambda.

Segui questi passaggi per risolvere i problemi relativi alla chiamata asincrona:

1.    Determina come viene richiamata la funzione Lambda. La funzione viene richiamata utilizzando l'interfaccia della linea di comando di AWS? La funzione viene richiamata tramite un servizio AWS?

2.    Verifica se il servizio AWS richiama la funzione Lambda in modo sincrono o asincrono.

3.    Richiama la funzione Lambda in modo asincrono utilizzando il seguente comando:

aws lambda invoke
  --function-name my-function 
      --invocation-type Event
          --cli-binary-format raw-in-base64-out
              --payload '{ "key": "value" }' response.json

Verifica se viene segnalato un codice di stato 202 o se il comando restituisce un errore.

4.    Esamina i file di log Amazon CloudWatch della funzione Lambda per vedere se i richiami duplicati:

  • Hanno lo stesso ID della richiesta oppure no.
  • Hanno restituito errori o sono scaduti.

Per ulteriori informazioni, consulta Come posso impedire richiami duplicati di funzioni Lambda?

5.    Se i richiami duplicati hanno lo stesso ID di richiesta e hanno restituito errori o sono scaduti, configura la gestione degli errori per richiami asincroni. Utilizzando questa configurazione, è possibile controllare il numero di tentativi che il servizio Lambda può eseguire in caso di errore.

Per ulteriori informazioni, consulta Gestione degli errori e tentativi automatici in AWS Lambda.

Nota: le chiamate duplicate con lo stesso ID di richiesta che restituiscono errori o timeout indicano che Lambda ha riprovato la funzione.

6.    Se i richiami duplicati non hanno restituito errori e non sono scaduti, procedi come segue:

  • Assicurati che il codice della funzione Lambda sia idempotente e in grado di gestire gli stessi messaggi più volte.
  • Assicurati che la funzione Lambda abbia il suo limite di simultaneità impostato su un valore abbastanza alto da gestire il numero di richieste di richiamo che riceve.
  • Identifica e risolvi eventuali errori restituiti dalla funzione Lambda.

Per ulteriori informazioni, consulta How do I troubleshoot Lambda function failures? (Come posso risolvere gli errori della funzione Lambda?).

Nota: se le chiamate duplicate provengono dal lato client, gli ID della richiesta saranno diversi.

7.    Se ancora non riesci a risolvere il problema, apri una richiesta di assistenza con il Supporto AWS. Fornisci le seguenti informazioni nella richiesta:

  • Il nome della risorsa Amazon (ARN) della funzione Lambda.
  • Il flusso di lavoro sulla configurazione della funzione Lambda con tutti i servizi inclusi.
  • Dettagli che indichino se il problema è intermittente o continuo.
  • Registri completi di CloudWatch in formato .txt dal momento in cui si è verificato il problema. Questi registri di CloudWatch vengono utilizzati per identificare gli errori delle funzioni Lambda che includono problemi di timeout, durate di avvio e problemi di autorizzazioni.
  • Il timestamp esatto del problema con il fuso orario o il timestamp in UTC.

Nota: i rappresentanti del Supporto AWS non hanno accesso ai registri di CloudWatch dei clienti per motivi di sicurezza e privacy.


Informazioni correlate

Comparing Lambda invocation modes (Confronto tra le modalità di chiamata di Lambda)

Richiamo di funzioni Lambda

Introducing AWS Lambda Destinations (Presentazione delle destinazioni AWS Lambda)

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa