View a markdown version of this page

Risoluzione degli SnapStart errori 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 SnapStart errori per le funzioni Lambda

Questa pagina risolve i problemi più comuni che si verificano quando si utilizza Lambda SnapStart, inclusi errori di creazione di istantanee, errori di timeout ed errori interni del servizio.

SnapStartNotReadyException

Errore: si è verificato un errore (SnapStartNotReadyException) durante la chiamata all'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: viene visualizzato un messaggio SnapStartTimeoutException quando si tenta di richiamare la versione di una 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 CloudWatch log della funzione per individuare 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 CloudWatch registro
{ "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 il AWS Systems Manager Parameter Store e AWS Secrets Manager l'estensione con Lambda SnapStart. Quando la funzione utilizza SnapStart, ottiene le credenziali da un endpoint del contenitore e Lambda non imposta la variabile di ambiente. AWS_SESSION_TOKEN Se la funzione imposta l'X-Aws-Parameters-Secrets-Tokenintestazione da quella variabile di ambiente, l'intestazione è vuota e l'estensione rifiuta la richiesta.

Risoluzione

Per correggere questo errore, utilizzate la catena di provider di credenziali AWS SDK per recuperare il token di sessione invece di leggere direttamente la variabile di ambiente. AWS_SESSION_TOKEN Imposta l'X-Aws-Parameters-Secrets-Tokenintestazione sul token restituito dalla catena di provider. La catena di provider di credenziali restituisce il token di sessione corretto in tutte le modalità di inizializzazione, incluse. SnapStart Per il codice di esempio, consulta Uso dei segreti in Secrets Manager nelle funzioni Lambda.

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 si utilizza un'altra cache DNS con SnapStart, è possibile che si verifichino dei timeout di connessione quando la funzione riprende da un'istantanea.

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 impossibile richiamare la funzione. SnapStart Se l'errore persiste, controlla i CloudWatch log della tua funzione per eventuali errori di inizializzazione.

Risoluzione

Controlla i CloudWatch log Amazon della tua funzione per verificare i timeout degli hook in fase di esecuzione 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.