Risoluzione dei problemi relativi alle implementazioni in 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 dei problemi relativi alle implementazioni in Lambda

Quando si aggiorna la funzione, Lambda distribuisce la modifica avviando nuove istanze della funzione con il codice o le impostazioni aggiornati. Gli errori di distribuzione impediscono l'utilizzo della nuova versione e possono derivare da problemi relativi al pacchetto di distribuzione, al codice, alle autorizzazioni o agli strumenti.

Quando distribuisci gli aggiornamenti alla tua funzione direttamente con l'API Lambda o con un client come AWS CLI il, puoi vedere gli errori di Lambda direttamente nell'output. Se utilizzi servizi come AWS CloudFormation, o AWS CodeDeploy AWS CodePipeline, cerca la risposta di Lambda nei log o nel flusso di eventi per quel servizio.

Negli argomenti seguenti vengono forniti suggerimenti per la risoluzione dei problemi relativi a errori e problemi che potrebbero verificarsi durante l'utilizzo della console, degli strumenti o dell'API Lambda. Se scopri un problema che non è elencato qui di seguito, puoi utilizzare il pulsante Feedback in questa pagina per segnalarlo.

Per ulteriori suggerimenti sulla risoluzione dei problemi e per risposte a domande comuni relative al supporto, visitare il Knowledge Center di AWS.

Per ulteriori informazioni sul debug e la risoluzione dei problemi delle applicazioni Lambda, consulta Debug in Serverless Land.

Generale: autorizzazione negata/Impossibile caricare tale file

Errore: EACCES: permission denied, open '/var/task/index.js' (EACCES: autorizzazione negata, aperto “/var/task/index.js”)

Errore: cannot load such file -- function (impossibile caricare tale file - funzione)

Errore: [Errno 13] Permission denied: '/var/task/function.py' ([Errno 13] Autorizzazione negata: “/var/task/function.py”)

Il runtime Lambda necessita dell'autorizzazione per leggere i file nel pacchetto di distribuzione. Nella notazione ottale delle autorizzazioni Linux, Lambda richiede 644 permessi per i file non eseguibili (rw-r--r--) e 755 permessi () per le directory e i file eseguibili. rwxr-xr-x

In Linux e macOS, utilizza il comando chmod per modificare le autorizzazioni file su file e directory nel pacchetto di implementazione. Ad esempio, per assegnare a un file eseguibile le autorizzazioni corrette, utilizza il comando seguente.

chmod 755 <filepath>

Per modificare le autorizzazioni file in Windows, consulta Set, View, Change, or Remove Permissions on an Object nella documentazione di Microsoft Windows.

Generale: si verifica un errore quando si chiama UpdateFunctionCode

Errore: si è verificato un errore (RequestEntityTooLargeException) durante la chiamata dell' UpdateFunctionCodeoperazione

Quando carichi un pacchetto di distribuzione o un archivio di livelli direttamente in Lambda, la dimensione del file ZIP è limitata a 50 MB. Per caricare un file di dimensioni maggiori, archivialo in Amazon S3 e utilizza i parametri S3Bucket e S3Key.

Nota

Quando caricate un file direttamente con AWS SDK o in altro modo AWS CLI, il file ZIP binario viene convertito in base64, il che ne aumenta le dimensioni di circa il 30%. Per consentire questa operazione e la dimensione di altri parametri nella richiesta, il limite effettivo della dimensione della richiesta Lambda applicabile è maggiore. Per questo motivo, il limite di 50 MB è approssimativo.

Amazon S3: codice di errore. PermanentRedirect

Errore: si è verificato un errore durante GetObject. Codice di errore S3: PermanentRedirect. Messaggio di errore S3: il bucket si trova in questa regione: us-east-2. Utilizza questa regione per riprovare la richiesta

Quando carichi il pacchetto di distribuzione di una funzione da un bucket Amazon S3, il bucket deve trovarsi nella stessa regione della funzione. Questo problema può verificarsi quando specifichi un oggetto Amazon S3 in una chiamata o utilizzi il pacchetto e distribuisci i comandi nella o AWS CLI nella CLI. UpdateFunctionCode AWS SAM Crea un bucket artefatto di distribuzione per ogni regione in cui sviluppi applicazioni.

Generale: impossibile trovare, impossibile caricare, impossibile importare, classe non trovata, file o directory non trovati

Errore: impossibile trovare il modulo "function"

Errore: cannot load such file -- function (impossibile caricare tale file - funzione)

Errore: impossibile importare il modulo "function"

Errore: classe non trovata: Function.Handler

Errore: fork/exec /var/task/function: nessun file o directory di questo tipo

Errore: impossibile caricare il tipo "Function.Handler" dal gruppo "Function".

Il nome del file o della classe nella configurazione dell'handler della funzione non corrisponde al codice. Per ulteriori informazioni, consulta la sezione seguente.

Generale: handler di metodi non definito

Errore: index.handler non è definito o non esportato

Errore: Handler "handler" mancante sul modulo "function"

Errore: metodo `handler' non definito per #<:0x000055b76ccebf98> LambdaHandler

Errore: Nessun metodo pubblico denominato HandleRequest con firma del metodo appropriata trovato sulla classe function.Handler

Errore: impossibile trovare il metodo "HandleRequest" nel tipo "Function.Handler" dal gruppo "Function"

Il nome del metodo dell'handler nella configurazione dell'handler della funzione non corrisponde al codice. Ogni runtime definisce una convenzione di denominazione per gli handler, ad esempio il nome del file.nome del metodo. L'handler è il metodo nel codice della funzione che il runtime esegue quando viene invocata la funzione.

Per alcune lingue, Lambda fornisce una libreria con un'interfaccia che prevede un metodo handler per avere un nome specifico. Per informazioni dettagliate sulla denominazione dell'handler per ogni lingua, consulta i seguenti argomenti.

Lambda: conversione dei livelli non riuscita

Errore: conversione dei livelli Lambda non riuscita. Per consigli sulla risoluzione di questo problema, consulta la pagina Risoluzione dei problemi di implementazione in Lambda nella Guida per l'utente di Lambda.

Quando si configura una funzione Lambda con un livello, Lambda unisce il livello con il codice della funzione. Se questo processo non viene completato, Lambda restituisce questo errore. Se lo fa, procedere come indicato di seguito:

  • Eliminare tutti i file inutilizzati dal livello

  • Eliminare tutti i collegamenti simbolici nel tuo livello

  • Rinominare tutti i file che hanno lo stesso nome di una directory in uno qualsiasi dei livelli della funzione

Lambda: o InvalidParameterValueException RequestEntityTooLargeException

Errore:InvalidParameterValueException: Lambda non è riuscita a configurare le variabili di ambiente perché le variabili di ambiente fornite hanno superato il limite di 4 KB. Stringa misurata: {"A1":" USFey5 7ATNx5bsm... cyPiPn

Errore: RequestEntityTooLargeException la richiesta deve essere inferiore a 5120 byte per l'operazione UpdateFunctionConfiguration

La dimensione massima dell'oggetto variabili memorizzato nella configurazione della funzione non deve superare 4096 byte. Sono inclusi nomi chiave, valori, virgolette, virgole e parentesi. Anche la dimensione totale del corpo della richiesta HTTP è limitata.

{ "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function", "Runtime": "nodejs20.x", "Role": "arn:aws:iam::123456789012:role/lambda-role", "Environment": { "Variables": { "BUCKET": "DOC-EXAMPLE-BUCKET", "KEY": "file.txt" } }, ... }

In questo esempio, l'oggetto è di 39 caratteri e quando archiviato occupa 39 byte (senza spazi) come stringa {"BUCKET":"DOC-EXAMPLE-BUCKET","KEY":"file.txt"}. I caratteri ASCII standard nei valori delle variabili di ambiente utilizzano un byte ciascuno. I caratteri ASCII e Unicode estesi possono utilizzare tra 2 e 4 byte per carattere.

Lambda: InvalidParameterValueException

Errore:InvalidParameterValueException: Lambda non è riuscita a configurare le variabili di ambiente perché le variabili di ambiente che hai fornito contengono chiavi riservate che attualmente non sono supportate per la modifica.

Lambda riserva alcune chiavi di variabili di ambiente per uso interno. Ad esempio, AWS_REGION viene utilizzata dal runtime per determinare la regione corrente e non può essere sovrascritta. Altre variabili, come PATH, sono utilizzate dal runtime ma possono essere estese nella configurazione della funzione. Per un elenco completo, consultare Variabili di ambiente di runtime definite.

Lambda: quote di simultaneità e memoria

Errore: la funzione specificata ConcurrentExecutions per la funzione riduce il numero di account al di UnreservedConcurrentExecution sotto del valore minimo

Errore: il valore MemorySize '' non è riuscito a soddisfare il vincolo: il membro deve avere un valore inferiore o uguale a 3008

Questi errori si verificano quando superi le quote di simultaneità o memoria per il tuo account. AWS I nuovi account hanno quote di concorrenza e memoria ridotte. Per risolvere gli errori relativi alla simultaneità, puoi richiedere un aumento della quota. Non è possibile richiedere un aumento della quota.

  • Concorrenza: potresti ricevere un errore se provi a creare una funzione utilizzando la concorrenza riservata o fornita o se la richiesta di concorrenza per funzione () PutFunctionConcurrencysupera la quota di concorrenza del tuo account.

  • Memoria: se la quantità di memoria allocata per la funzione supera la quota di memoria dell'account si verificano degli errori.