Come posso risolvere i problemi relativi alla chiamata sincrona di Lambda?

3 minuti di lettura
0

Ho impostato una funzione AWS Lambda da richiamare in modo sincrono, 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- Perché la mia funzione Lambda non effettua nuovi tentativi dopo averla impostata per riprovare ancora una o due volte?

Risoluzione

Quando si richiama in modo sincrono 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.
  • Lambda viene richiamato in modo asincrono.
  • Lambda supporta le destinazioni solo per le chiamate asincrone e le invocazioni di flussi e non per le chiamate sincrone.

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

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 sincrono utilizzando il seguente comando:

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

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

4.    Ricorda che il comportamento dei tentativi della funzione Lambda è controllato dal client nelle chiamate sincrone. La configurazione Retry attempts (Nuovi tentativi) nella console AWS Lambda è limitata alle chiamate asincrone. Assicurati che il client riprovi ad eseguire le richieste anziché controllare i registri di Lambda.

5.    Ricorda che una funzione Lambda richiamata nella console Lambda è sempre una chiamata sincrona.

6.    Il comportamento dei tentativi di chiamata sincrona varia a seconda dei servizi AWS, in base alla mappatura dell'origine degli eventi di ciascun servizio.

Per ulteriori informazioni, consulta Chiamata basata sugli eventi.

7.    Assicurati che il codice della funzione Lambda sia idempotente e in grado di gestire gli stessi messaggi più volte.

8.    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?).

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

  • L'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