

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
<a name="troubleshooting-deployment"></a>

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](https://aws.amazon.com/premiumsupport/knowledge-center/#AWS_Lambda).

Per ulteriori informazioni sul debug e la risoluzione dei problemi delle applicazioni Lambda, consulta [Debug](https://serverlessland.com/content/service/lambda/guides/aws-lambda-operator-guide/debugging-ops) in Serverless Land.

**Topics**
+ [Generale: autorizzazione negata/Impossibile caricare tale file](#troubleshooting-deployment-denied)
+ [Generale: si verifica un errore quando si chiama il UpdateFunctionCode](#troubleshooting-deployment-updatefunctioncode)
+ [Amazon S3: codice di errore. PermanentRedirect](#troubleshooting-deployment-PermanentRedirect)
+ [Generale: impossibile trovare, impossibile caricare, impossibile importare, classe non trovata, file o directory non trovati](#troubleshooting-deployment-functionHandler1)
+ [Generale: handler di metodi non definito](#troubleshooting-deployment-functionHandler2)
+ [Generale: il limite di memorizzazione del codice Lambda è stato superato](#troubleshooting-deployment-CodeStorageExceeded)
+ [Lambda: conversione dei livelli non riuscita](#troubleshooting-deployment-LayerConversionFailed)
+ [Lambda: o InvalidParameterValueException RequestEntityTooLargeException](#troubleshooting-deployment-InvalidParameterValueException1)
+ [Lambda: InvalidParameterValueException](#troubleshooting-deployment-InvalidParameterValueException2)
+ [Lambda: quote di simultaneità e memoria](#troubleshooting-deployment-quotas)
+ [Lambda: configurazione alias non valida per la concorrenza fornita](#troubleshooting-deployment-provisioned-concurrency)

## Generale: autorizzazione negata/Impossibile caricare tale file
<a name="troubleshooting-deployment-denied"></a>

**Errore: EACCES:** *autorizzazione negata*, apri '/ .js' var/task/index

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

**Errore:** *[Errno 13*] Autorizzazione negata: '/ .py' var/task/function

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 non eseguibile le autorizzazioni corrette, utilizza il comando seguente.

```
chmod 644 <filepath>
```

Per modificare le autorizzazioni file in Windows, consulta [Set, View, Change, or Remove Permissions on an Object](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc731667(v=ws.10)) nella documentazione di Microsoft Windows.

**Nota**  
Se non concedi a Lambda le autorizzazioni necessarie per accedere alle directory nel pacchetto di distribuzione, Lambda imposta le autorizzazioni per tali directory su 755 (). rwxr-xr-x

## Generale: si verifica un errore quando si chiama il UpdateFunctionCode
<a name="troubleshooting-deployment-updatefunctioncode"></a>

**Errore:** *si è verificato un errore (RequestEntityTooLargeException) durante la chiamata dell' UpdateFunctionCode operazione*

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
<a name="troubleshooting-deployment-PermanentRedirect"></a>

**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 CLI. [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html) 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
<a name="troubleshooting-deployment-functionHandler1"></a>

**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*

**Errorefork/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
<a name="troubleshooting-deployment-functionHandler2"></a>

**Errore:** *index.handler non è definito o non esportato*

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

**Errore:** *metodo `handler' non definito* per \$1<: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 i gestori, ad esempio. *filename* *methodname*. 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.
+ [Compilazione di funzioni Lambda con Node.js](lambda-nodejs.md)
+ [Compilazione di funzioni Lambda con Python](lambda-python.md)
+ [Compilazione di funzioni Lambda con Ruby](lambda-ruby.md)
+ [Compilazione di funzioni Lambda con Java](lambda-java.md)
+ [Compilazione di funzioni Lambda con Go](lambda-golang.md)
+ [Compilazione di funzioni Lambda con C\$1](lambda-csharp.md)
+ [Creazione di funzioni Lambda con PowerShell](lambda-powershell.md)

## Generale: il limite di memorizzazione del codice Lambda è stato superato
<a name="troubleshooting-deployment-CodeStorageExceeded"></a>

**Errore:** *limite di archiviazione del codice superato*.

Lambda archivia il codice della funzione in un bucket S3 interno riservato al tuo account. A ogni AWS account vengono assegnati 75 GB di spazio di archiviazione in ogni regione. Lo spazio di archiviazione del codice include lo spazio di archiviazione totale utilizzato sia dalle funzioni che dai livelli Lambda. Se raggiungi la quota, ricevi un messaggio *CodeStorageExceededException*quando tenti di implementare nuove funzioni.

Gestisci lo spazio di archiviazione disponibile ripulendo le vecchie versioni delle funzioni, rimuovendo il codice inutilizzato o utilizzando i livelli Lambda. Inoltre, è buona norma [utilizzare AWS account separati per carichi di lavoro separati per](concepts-application-design.md#multiple-accounts) facilitare la gestione delle quote di archiviazione.

Puoi visualizzare l'utilizzo totale dello storage nella console Lambda, nel sottomenu **Dashboard**:

![\[monitoraggio dell'osservabilità (figura 26)\]](http://docs.aws.amazon.com/it_it/lambda/latest/dg/images/monitoring-observability-figure-26.png)




## Lambda: conversione dei livelli non riuscita
<a name="troubleshooting-deployment-LayerConversionFailed"></a>

**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
<a name="troubleshooting-deployment-InvalidParameterValueException1"></a>

**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: \$1"A1":" u Y5 7ATNx5bsm... SFe cyPiPn*

**ErroreRequestEntityTooLargeException:** *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": "nodejs24.x",
    "Role": "arn:aws:iam::123456789012:role/lambda-role",
    "Environment": {
        "Variables": {
            "BUCKET": "amzn-s3-demo-bucket",
            "KEY": "file.txt"
        }
    },
    ...
}
```

In questo esempio, l'oggetto è di 39 caratteri e quando archiviato occupa 39 byte (senza spazi) come stringa `{"BUCKET":"amzn-s3-demo-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
<a name="troubleshooting-deployment-InvalidParameterValueException2"></a>

**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](configuration-envvars.md#configuration-envvars-runtime).

## Lambda: quote di simultaneità e memoria
<a name="troubleshooting-deployment-quotas"></a>

**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](gettingstarted-limits.md) 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](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html). Non è possibile richiedere un aumento della quota.
+ **Simultaneità:** se provi a creare una funzione utilizzando la simultaneità riservata o con provisioning o se la tua richiesta di simultaneità per funzione ([PutFunctionConcurrency](https://docs.aws.amazon.com/lambda/latest/api/API_PutFunctionConcurrency.html)) supera la quota di simultaneità del tuo account potresti ricevere un errore.
+ **Memoria:** se la quantità di memoria allocata per la funzione supera la quota di memoria dell'account si verificano degli errori.

## Lambda: configurazione alias non valida per la concorrenza fornita
<a name="troubleshooting-deployment-provisioned-concurrency"></a>

**Errore: configurazione degli alias** *non valida* per la concorrenza fornita

Questo errore si verifica quando si tenta di aggiornare il codice o la configurazione di una funzione Lambda mentre un alias con concorrenza assegnata indica una versione con problemi. Lambda preinizializza gli ambienti di esecuzione per la concorrenza preimpostata e, se questi ambienti non possono essere inizializzati correttamente a causa di errori di codice, vincoli di risorse o stack e alias interessati, l'implementazione fallisce. Se riscontri questo problema, procedi nel seguente modo:

1. **Ripristina l'alias:** aggiorna temporaneamente l'alias in modo che punti alla versione funzionante in precedenza.

   ```
    aws lambda update-alias \
     --function-name <function-name> \
     --name <alias-name> \
     --function-version <known-good-version>
   ```

1. **Correggi il codice di inizializzazione Lambda:** assicurati che il codice di inizializzazione eseguito all'esterno del gestore non contenga eccezioni non rilevate e inizializza i client e le connessioni.

1. **Reimplementa la sicurezza: implementa il codice** fisso e pubblica una nuova versione. Quindi, aggiorna l'alias in modo che punti alla versione fissa. Facoltativamente, riattiva la concorrenza [fornita, se necessario](provisioned-concurrency.md).

Se lo utilizzi AWS CloudFormation, aggiorna la definizione dello stack `FunctionVersion:!GetAtt version.Version` in modo che l'alias punti alla versione funzionante:

```
alias:
 Type: AWS::Lambda::Alias
 Properties:
 FunctionName: !Ref function
FunctionVersion: !GetAtt version.Version
 Name: BLUE
 ProvisionedConcurrencyConfig:
 ProvisionedConcurrentExecutions: 1
```