Risoluzione degli errori di SnapStart per le funzioni Lambda - AWS Lambda

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à.

Risoluzione degli errori di SnapStart per le funzioni Lambda

Questa pagina affronta i problemi più comuni che si verificano durante l'utilizzo di Lambda SnapStart, inclusi errori di creazione di snapshot, errori di timeout ed errori interni del servizio.

SnapStartNotReadyException

Errore: si è verificato un errore (SnapStartNotReadyException) durante la chiamata dell'operazione Invoke20150331: Lambda sta inizializzando la funzione. Sarà pronta per essere richiamata una volta che lo stato della funzione diventerà ATTIVO.

Cause comuni

Questo errore si verifica quando si prova a richiamare una versione della funzione che si trova nello stato Inactive. La versione della funzione diventa Inactive quando non viene richiamata per 14 giorni o quando Lambda riavvia periodicamente l'ambiente di esecuzione

Risoluzione

Attendi che la versione della funzione raggiunga lo stato Active, quindi richiamala di nuovo.

SnapStartTimeoutException

Problema: si riceve una SnapStartTimeoutException quando si prova richiamare una versione della funzione SnapStart.

Cause comuni

Durante la fase di ripristino, Lambda ripristina il runtime Java ed esegue qualsiasi hook di runtime successivo al ripristino. Se un hook di runtime post-ripristino viene eseguito per più di 10 secondi, la fase Restore scade e viene visualizzato un errore quando si prova a richiamare la funzione. I problemi relativi alla connessione di rete e alle credenziali possono anche causare un timeout per la fase Restore.

Risoluzione

Controlla i log di CloudWatch della funzione per eventuali errori di timeout verificatisi durante la fase di ripristino. Assicurati che tutti gli hook post-ripristino vengano completati in meno di 10 secondi.

Esempio Log CloudWatch
{ "cause": "Lambda couldn't restore the snapshot within the timeout limit. (Service: Lambda, Status Code: 408, Request ID: 11a222c3-410f-427c-ab22-931d6bcbf4f2)", "error": "Lambda.SnapStartTimeoutException"}

Errore interno del servizio 500

Errore: Lambda non è riuscito a creare un nuovo snapshot perché è stato raggiunto il limite di creazione simultanea di snapshot.

Cause comuni

Un errore 500 è un errore interno al servizio Lambda stesso e non un problema relativo alla funzione o al codice. Questi errori sono spesso intermittenti.

Risoluzione

Prova a pubblicare nuovamente la versione della funzione.

401 - Autorizzazione negata

Errore: token di sessione o chiave di intestazione errati

Cause comuni

Questo errore si verifica quando si utilizzano l'archivio dei parametri AWS Systems Manager e l'estensione Gestione dei segreti AWS con Lambda SnapStart.

Risoluzione

L'archivio di parametri AWS Systems Manager e l'estensione Gestione dei segreti AWS non sono compatibili con SnapStart. L'estensione genera credenziali con cui comunicare con Gestione dei segreti AWS durante l'inizializzazione della funzione, il che causa errori di credenziali scadute se utilizzate con SnapStart.

UnknownHostException (Java)

Errore: impossibile eseguire la richiesta HTTP: il certificato per abc.us-east-1.amazonaws.com non corrisponde a nessuno dei nomi alternativi del soggetto.

Cause comuni

Le funzioni Lambda memorizzano già nella cache le risposte DNS. Se con SnapStart si utilizza un'altra cache DNS, è possibile che si verifichino dei timeout di connessione quando la funzione riprende da uno snapshot.

Risoluzione

Per evitare errori UnknownHostException nel runtime di Java 11, si consiglia di impostare networkaddress.cache.negative.ttl su 0. Nei runtime di Java 17 e successivi, questa operazione non è necessaria. È possibile impostare questa proprietà per una funzione Lambda con la variabile di ambiente AWS_LAMBDA_JAVA_NETWORKADDRESS_CACHE_NEGATIVE_TTL=0.

Errori di creazione snapshot

Errore: AWS Lambda non ha potuto richiamare la funzione SnapStart. Se l'errore persiste, controlla i log CloudWatch della tua funzione per individuare eventuali errori di inizializzazione.

Risoluzione

Controlla i log di Amazon CloudWatch della tua funzione per verificare i timeout degli hook di runtime prima del checkpoint. Puoi anche provare a pubblicare una nuova versione della funzione, che a volte può risolvere il problema.

Frequenza di creazione degli snapshot

Problema: quando si pubblica una nuova versione della funzione, la funzione rimane nello stato Pending per un lungo periodo.

Cause comuni

Quando Lambda crea uno snapshot, il codice di inizializzazione può essere eseguito per un massimo di 15 minuti. Il limite di tempo è 130 secondi o il timeout della funzione configurato (massimo 900 secondi), a seconda di quale dei due valori sia più elevato.

Se la funzione è collegata a un VPC, Lambda potrebbe anche dover creare interfacce di rete prima che la funzione diventi Active. Se provi a richiamare la versione della funzione mentre la funzione è Pending, potresti ottenere un ResourceConflictException 409. Se la funzione viene richiamata utilizzando un endpoint Gateway Amazon API, potresti ricevere un errore 500 in API Gateway.

Risoluzione

Attendi almeno 15 minuti per l'inizializzazione della versione della funzione prima di richiamarla.