

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 delle funzioni Web Lambda
<a name="web-functions-troubleshooting"></a>

Inizia con lo stato della risorsa, la risposta HTTP e i log della richiesta. Le funzioni Web espongono uno stato separato per la funzione, la revisione, l'endpoint e ogni regione di un endpoint. `MultiRegion` `PerRegion` Un errore in una risorsa non sempre modifica lo stato delle altre.

**Nota**  
Prima di eseguire i comandi di diagnostica in questo argomento, assicurati di disporre dell' AWS CLI accesso e dell'autorizzazione per chiamare le operazioni della funzione `get-*` Web Lambda.

## Raccogliere informazioni diagnostiche
<a name="web-functions-troubleshooting-first-steps"></a>

1. Ottieni la funzione Web, la revisione e l'endpoint. Registra ogni`state`, `stateReason``updateStatus`, e `updateStatusReason` valore.

   ```
   aws lambda-web get-web-function \
       --function-name {{my-web-app}}
   
   aws lambda-web get-web-function-revision \
       --function-name {{my-web-app}} \
       --revision-id {{revision-id}}
   
   aws lambda-web get-web-function-endpoint \
       --function-name {{my-web-app}} \
       --endpoint-name {{prod}}
   ```

   Sostituisci {{my-web-app}} con il nome della funzione, {{revision-id}} con la revisione da esaminare e {{prod}} con il nome dell'endpoint.

1. Invia una richiesta e registra il codice di stato e le intestazioni di risposta.

   ```
   curl --include https://{{endpoint-domain}}/{{path}}
   ```

   L'`lambda-web-request-id`intestazione identifica la richiesta. Se presente, l'`lambda-web-logstream`intestazione identifica il flusso di log di Amazon CloudWatch Logs che ha gestito la richiesta e l'`lambda-web-error-type`intestazione identifica un errore della piattaforma.

1. Esamina i log delle applicazioni e del sistema nel gruppo di log centralizzato nella regione principale di Web Function. Per i nomi dei gruppi di log e le indicazioni sulla correlazione, vedere. [Registri delle funzioni Web in Amazon CloudWatch Logs](web-functions-logging.md)

1. Per `MultiRegion` e per gli `PerRegion` endpoint, ispeziona ogni ingresso. `regionalEndpoints` Un corretto stato a livello di endpoint non significa che l'aggiornamento più recente sia riuscito in ogni regione.

## Problemi di distribuzione e avvio
<a name="web-functions-troubleshooting-deployment"></a>


| Caratteristiche | Cosa controllare | Risoluzione | 
| --- | --- | --- | 
| Una revisione è Failed | Le revisionistateReason, la versione dell'oggetto Amazon S3 di riferimento, la policy del bucket, il ruolo di esecuzione, il runtime e la chiave. AWS KMS  | Correggi la configurazione sottostante e crea una nuova revisione. Le revisioni sono immutabili e una revisione non riuscita non viene ripristinata. Active | 
| L'endpoint lo èActive, ma le richieste falliscono durante l'avvio dell'applicazione | Registri di sistema e delle applicazioni per errori nei file di immissione, errori di dipendenza o server che non sono mai in ascolto. AWS\_LAMBDA\_HTTP\_ENDPOINT | Esegui l'applicazione pacchettizzata localmente, verifica il file di ingresso e le dipendenze di produzione e ascolta sull'host e sulla porta esatti forniti da Lambda. Implementa la correzione come nuova revisione. | 
| Un aggiornamento dell'endpoint non riesce | updateStatusReasonsull'endpoint e, per MultiRegion e PerRegion endpoint, su ogni voce regionale. | Correggi la dipendenza segnalata o l'errore regionale, quindi richiama per UpdateWebFunctionEndpoint riprovare l'aggiornamento. | 
| does not have s3:GetObject - create-web-function-revision | Il codice viene letto da Amazon S3 e la policy del bucket o la policy di identità del chiamante non hanno accesso in lettura. | Grant s3:GetObject e s3:GetObjectVersion nella policy bucket (per il servizio Lambda) e nella policy di identità del chiamante. | 
| AccessDenied - get-web-function-endpoint | La policy IAM Resource non include l'endpoint. | web-function/{{name}}/\*Includi nella policyResource. | 

Per evitare errori di distribuzione ripetuti, convalida la configurazione e l'avvio in una revisione di test prima di creare una revisione di produzione.

## Errori della CLI e dei pacchetti
<a name="web-functions-troubleshooting-cli-package"></a>


| Errore o sintomo | Causa | Risoluzione | 
| --- | --- | --- | 
| invalid choice: lambda-web | L'installazione è AWS CLI precedente ai comandi di Web Function. | Aggiorna AWS CLI e verifica che aws lambda-web help elenchi le operazioni della funzione Web. | 
| Unknown parameter: BuildConfig | La richiesta utilizza i nomi dei PascalCase membri. | Usa i membri della richiesta CamelCase mostrati in questa guida, ad esempio, buildConfig ecodeConfig. serviceConfig | 
| Cannot find module '/var/task/index.js' | Il file di immissione richiesto non è presente nella radice dell'archivio. | index.jsInseriscilo nella radice del pacchetto di distribuzione. Includi tutti i file e le dipendenze di produzione che importa. | 
| ERR\_MODULE\_NOT\_FOUNDper un file di applicazione | L'archivio omette un file sorgente o creato importato daindex.js. | Ispeziona l'archivio conunzip -l, aggiungi il file mancante e crea una nuova revisione. | 
| Application.TimeoutListenErroro HTTP 502 alla prima richiesta | L'applicazione esegue l'ascolto su un indirizzo di solo loopback, ad esempio 127.0.0.1 orlocalhost, o su una porta diversa da quella in ingresso. AWS\_LAMBDA\_HTTP\_ENDPOINT | Analizza AWS\_LAMBDA\_HTTP\_ENDPOINT e ascolta esattamente su quell'host e sulla stessa porta. | 
| EMFILE o too many open files | L'applicazione perde socket, file o connessioni al database tra richieste simultanee. | Chiudi gli handle per richiesta, i pool di connessioni associati e monitora gli handle aperti in caso di concorrenza sostenuta. | 
| JavaScript heap out of memory | L'applicazione ha raggiunto il limite di heap V8 predefinito, che è inferiore al limite di memoria di 2 GB dell'ambiente di esecuzione, oppure le richieste simultanee hanno esaurito la memoria di ambiente rimanente. | Verifica la presenza di oggetti conservati e cache illimitate e riduci la concorrenza. Se l'applicazione richiede un heap più grande, imposta un limite di heap V8 più grande con in. --max-old-space-size NODE\_OPTIONS Lasciate memoria per i buffer, le allocazioni native e il runtime. | 
| Dipendenza/in fase di esecuzione Cannot find module ERR\_MODULE\_NOT\_FOUND | node\_modulesnon è stato incluso nel pacchetto di distribuzione. | Installa le dipendenze di produzione e includile nel pacchetto: eseguinpm ci --omit=dev, quindi conferma conunzip -l function.zip. | 
| I file statici restituiscono HTTP 404 | L'applicazione risolve i percorsi dei file relativi alla directory di lavoro oppure i file non sono stati impacchettati. | Risolvi i percorsi dalla directory del modulo (\_\_dirnamein CommonJS o import.meta.dirname nei moduli ES) e conferma che i file siano nel pacchetto con. unzip -l | 
| Errori di importazione ESM, come «Impossibile utilizzare l'istruzione di importazione all'esterno di un modulo» | package.jsonnon dichiara il tipo di modulo. | Aggiungi "type": "module" o usa CommonJS in modo coerente. package.json | 

## Richieste HTTP non riuscite
<a name="web-functions-troubleshooting-http"></a>


| Risposta | Cause comuni | Risoluzione | 
| --- | --- | --- | 
| HTTP 400 | Il client ha utilizzato un metodo HTTP non supportato o ha inviato una richiesta che l'endpoint non è riuscito a elaborare. | Utilizza un metodo supportato e rivedi le intestazioni e i limiti della richiesta in. [Richieste e risposte HTTP](web-functions-http.md) | 
| HTTP 403 | L'autorizzazione di una `IamAuth` richiesta non è riuscita per uno dei seguenti motivi:+ La richiesta non è firmata.<br />+ La richiesta omette l'intestazione dell'hash del contenuto richiesta.<br />+ La richiesta ha una firma non valida.<br />+ Il chiamante non dispone dell'autorizzazione. Per le chiamate tra più account, potrebbe mancare la politica di identità o la politica basata sulle risorse. | Verifica che la richiesta includa l'X-Amz-Content-SHA256intestazione richiesta, rivedi la firma e verifica lambda:InvokeWebFunctionEndpoint nelle politiche di identità e risorse richieste. Per i requisiti di firma, consulta[Firma delle richieste](web-functions-endpoint-access-control.md#web-functions-endpoint-access-control-signing). Per i requisiti di autorizzazione, vedere[Concessione del permesso di invocazione a un preside](web-functions-endpoint-access-control.md#web-functions-endpoint-access-control-iam-grant). | 
| HTTP 404 | L'applicazione non definisce la route richiesta o il client utilizza un dominio endpoint obsoleto. L'Hostintestazione potrebbe inoltre non corrispondere al dominio dell'endpoint. Se configuri una porta principale come Amazon CloudFront per inoltrare l'Hostintestazione del visualizzatore all'origine, Lambda restituisce questo errore lambda-web-error-type con set to. Platform.InvalidEndpoint | Verifica l'attualedomainName, il percorso della richiesta e i percorsi dell'applicazione. Utilizza lambda-web-error-type e registra per distinguere una risposta della piattaforma da una risposta dell'applicazione. | 
| HTTP 409 | L'endpoint non lo èActive, oppure l'endpoint è stato risolto in una revisione che non lo è. Active | Ispeziona lo stato della revisione e dell'endpoint. Se l'endpoint èPending, attendi e riprova; se lo èFailed, crea un nuovo endpoint. Per le revisioni, rimuovi le revisioni non riuscite o inattive dai pesi dell'endpoint e crea una revisione sostitutiva quando necessario. | 
| HTTP: 429 | Si è verificato uno degli eventi seguenti:+ La richiesta ha superato il limite di velocità dell'endpoint.<br />+ L'endpoint ha esaurito la capacità dell'ambiente.<br />+ L'account ha raggiunto un limite di richieste regionali o vCPU.<br />+ Troppi ambienti di esecuzione si inizializzavano contemporaneamente per l'endpoint. | Leggi l'lambda-web-error-typeintestazione per identificare il limite applicato. Consulta [Tipi di errore delle funzioni Web](#web-functions-troubleshooting-error-types). Esamina le metriche relative all'acceleratore (EndpointRequestThrottles,, eAccountActiveVCPUArm64Throttles) AccountRequestThrottlesEndpointActiveEnvironmentThrottles, le metriche della capacità attiva, le impostazioni degli endpoint e i limiti applicati all'account. L'inizializzazione simultanea throttling () non incrementa una metrica di accelerazione. Platform.EndpointConcurrentInitThrottle Riprova solo le richieste idempotenti, usando backoff e jitter. | 
| HTTP 502 | L'applicazione non è riuscita prima di iniziare a servire le richieste, Lambda non è riuscita a preparare l'ambiente di esecuzione per la funzione Web oppure l'applicazione ha restituito una risposta non valida. | Utilizza lambda-web-error-type i registri di sistema per identificare la causa. Consulta [Tipi di errore delle funzioni Web](#web-functions-troubleshooting-error-types). | 
| HTTP 503 | L'applicazione si è bloccata durante la gestione di una richiesta, l'endpoint è disabilitato o Lambda non è riuscita a ottenere capacità o a raggiungere l'applicazione. | Utilizzalambda-web-error-type, se presenti, i log dell'applicazione e del sistema per identificare la causa. Consulta [Tipi di errore delle funzioni Web](#web-functions-troubleshooting-error-types). Un 503 senza lambda-web-error-type può indicare una perdita di carico temporanea o un errore interno. In entrambi i casi, riprova le richieste idempotenti con backoff e jitter. | 
| HTTP 504 | L'applicazione non ha risposto entro il timeout di revisione (). Runtime.RequestTimeout | Controllate la latenza della revisione timeoutSeconds e quella successiva. | 
| Altro HTTP 5xx | L'applicazione ha restituito lo stato 5xx oppure Lambda ha riscontrato un errore interno (lambda-web-error-typenessuna intestazione). | Utilizza l'ID della richiesta, l'intestazione del flusso di log, i registri delle applicazioni e i registri di sistema per identificare l'origine e verificare lo stato del processo. | 
| La richiesta si blocca o scade in caso di caricamento di grandi dimensioni; i log mostrano 0 byte ricevuti | Il gestore ha iniziato a scrivere la risposta mentre il corpo della richiesta era ancora in arrivo. Il percorso di richiesta della funzione Web è half-duplex: Lambda inoltra l'intero corpo della richiesta prima di fornire la risposta dell'applicazione. | Leggi completamente il corpo della richiesta prima di scrivere la risposta. I corpi con dimensioni inferiori a circa 1 MB si adattano ai buffer dei socket e possono mascherarlo. | 

## Limiti di intestazione della richiesta
<a name="web-functions-troubleshooting-header-limits"></a>

Alle intestazioni delle richieste si applicano due limiti. Lambda limita il blocco di intestazione a 128 KB e rifiuta le richieste più grandi prima che raggiungano la tua funzione. Il server Node.js HTTP della tua funzione limita anche il numero di righe di intestazione che accetta. Entrambi restituiscono campi di intestazione della richiesta HTTP 431 troppo grandi, come mostrato nella tabella seguente. Per i limiti della piattaforma, vedi. [Limiti dell'intestazione](web-functions-http.md#web-functions-http-header-limits)


| Caratteristiche | Causa | Risoluzione | 
| --- | --- | --- | 
| HTTP 431 conlambda-web-error-type: Platform.HeaderTooLarge. Nessuna chiamata e nessuna immissione nel registro dell'applicazione. | L'intestazione della richiesta supera i 131.072 byte (128 KiB), misurata sull'intestazione completa della richiesta inviata dal client. | Riduci la dimensione delle intestazioni della richiesta. Questo limite non può essere aumentato. | 
| HTTP 431 con lambda-web-request-id e lambda-web-logstream ma no. lambda-web-error-type Il gestore non funziona. | La richiesta contiene più di 1.000 righe di intestazione ricevute dal Node.js server, incluse le intestazioni aggiunte da Lambda. | server.maxHeadersCountIncrementa il codice del server o riduci il numero di righe di intestazione inviate dal client. | 

Il limite di dimensione conta ogni byte dell'intestazione della richiesta man mano che il client la invia. Ciò include la riga di richiesta, ogni riga di intestazione (incluse `Host` tutte le intestazioni aggiunte dalla libreria del client) e i terminatori di riga. Le intestazioni aggiunte da Lambda non vengono conteggiate ai fini del limite di dimensione.

Quando una richiesta supera il limite di dimensione, Lambda la rifiuta prima che raggiunga la funzione, quindi la richiesta non produce alcuna chiamata e nessuna immissione nel registro dell'applicazione. L'intestazione della `lambda-web-error-type` risposta identifica la causa.

Il limite di Node.js conteggio conta le righe di intestazione, non i nomi di intestazione distinti. Un'intestazione ripetuta tre volte conta tre volte. Di conseguenza, una richiesta che accumula `x-forwarded-for` o traccia le intestazioni attraverso una catena di proxy può raggiungere il limite. Nessuna singola intestazione deve avere un aspetto insolito perché ciò accada. Il limite viene misurato sulla richiesta ricevuta dalla funzione, che include le intestazioni aggiunte da Lambda. Di conseguenza, un client che invia poco meno di 1.000 righe di intestazione può raggiungerlo. Quando ciò accade, la richiesta raggiunge l'ambiente di esecuzione e il Node.js server la rifiuta durante l'analisi. Il tuo gestore non funziona. La risposta contiene le `lambda-web-logstream` intestazioni `lambda-web-request-id` and, ma non contiene l'`lambda-web-error-type`intestazione.

Se l'applicazione deve accettare più righe di intestazione di quelle consentite dall'Node.jsimpostazione predefinita, aumentate il Node.js limite nel codice del server. Imposta `server.maxHeadersCount` il numero di righe di intestazione da accettare o impostalo per `0` disabilitare il controllo del Node.js conteggio. Il limite di dimensione di 128 KB è ancora valido.

```
const server = http.createServer(handler);
server.maxHeadersCount = 2000;
server.listen(port, host);
```

Non è necessario modificare il limite di dimensione dell'Node.jsintestazione. I Node.js runtime gestiti lo impostano in modo che corrisponda al limite della piattaforma, quindi il limite della piattaforma si applica alla dimensione dell'intestazione. Non è possibile aumentare il limite della piattaforma dal codice dell'applicazione.

Per rimanere entro i limiti, spostate lo stato di massa dalle intestazioni al corpo della richiesta, eliminate i cookie e comprimete le intestazioni di tracciamento e proxy ridondanti prima che la richiesta raggiunga l'endpoint. Se una CloudFront distribuzione si trova davanti all'endpoint, inoltra solo le intestazioni necessarie all'applicazione nella policy di richiesta di origine.

## Tipi di errore delle funzioni Web
<a name="web-functions-troubleshooting-error-types"></a>

Quando una richiesta a un endpoint Web Function fallisce, Lambda restituisce `lambda-web-error-type` un'intestazione di risposta che identifica l'errore. Il valore utilizza il formato`<Prefix>.<ErrorReason>`: il prefisso indica dove si è verificato l'errore e il motivo specifica la causa.


| Prefix | Dove si è verificato l'errore | 
| --- | --- | 
| Platform. | Il livello della piattaforma Lambda, che indirizza e convalida le richieste, controlla le autorizzazioni e impone i limiti. | 
| Runtime. | Il runtime gestito che carica ed esegue la tua funzione. | 
| Application. | Il codice della tua funzione. | 

Ad esempio, `Runtime.RequestTimeout` significa che il runtime gestito ha segnalato che la funzione non ha risposto entro il timeout configurato e `Application.InitCodeError` significa che il codice di inizializzazione utilizzato ha generato un errore.

Lambda include l'`lambda-web-error-type`intestazione quando l'errore è stato causato dalla richiesta stessa o dalla funzione, dalla sua configurazione o dal suo codice. Lambda omette l'intestazione per gli errori interni del servizio e per gli errori di autorizzazione, in modo che nessun dettaglio venga rivelato a un chiamante non autorizzato. Un valore indica un problema nel percorso tra la piattaforma Lambda e la tua funzione. Nel percorso della richiesta, l'errore identifica dove la richiesta non è riuscita. Nel percorso di risposta, utilizzate il valore insieme alla telemetria dell'applicazione per capire cosa è successo.


| Tipi di errore | Description | 
| --- | --- | 
| Platform.MalformedRequest | Lambda non è riuscita ad analizzare la richiesta oppure la riga o il metodo della richiesta non sono stati accettati. | 
| Platform.MissingHostHeader | La richiesta non includeva un'intestazione Host, quindi Lambda non è riuscita a risolvere l'endpoint di destinazione. | 
| Platform.InvalidEndpoint | L'intestazione Host non è stata risolta in un endpoint esistente valido. | 
| Platform.HeaderTooLarge | La sezione dell'intestazione della richiesta ha superato il limite di dimensione dell'intestazione Lambda. | 
| Platform.DisallowedHeader | La richiesta conteneva un'intestazione che Lambda non accetta. Lambda restituisce HTTP 400. | 
| Platform.UnsupportedHttpVersion | La richiesta utilizzava una versione HTTP diversa da quella HTTP/1.1 richiesta da Web Functions. | 
| Platform.CannotAssumeRole | Lambda non può assumere il ruolo di esecuzione della funzione. | 
| Platform.KMSDecryptionError | Lambda non è riuscita a utilizzare la AWS KMS chiave configurata per decrittografare le variabili di ambiente o altri dati necessari per inizializzare la funzione. | 
| Platform.InvalidNetworkConfiguration | Una risorsa di rete VPC da cui dipende la funzione non è valida. Per trovare la causa, consulta. [Problemi di rete e connettività](#web-functions-troubleshooting-networking) | 
| Platform.RevisionNotActive | La revisione della funzione oggetto della richiesta non è nello stato Attivo. La revisione potrebbe essere ancora attiva o potrebbe non essere stata attivata. Controlla lo stato della revisione; se l'attivazione è ancora in corso, riprova dopo un breve periodo. | 
| Platform.EndpointNotActive | L'endpoint non è nello stato Attivo. L'endpoint potrebbe essere ancora in fase di provisioning o potrebbe non essere altrimenti disponibile. Controlla lo stato dell'endpoint; se è ancora in fase di creazione, riprova dopo un breve periodo. | 
| Platform.EndpointDisabled | L'endpoint rateLimit è 0, quindi Lambda rifiuta tutte le richieste con HTTP 503. Imposta un valore diverso rateLimit da zero per riprendere il traffico. | 
| Platform.AccountDisabled | Le chiamate alle funzioni Web sono disattivate per l'account. Lambda restituisce HTTP 403. Contatto. Supporto AWS | 
| Platform.AccountRequestThrottle | La quota di frequenza delle richieste a livello di account è stata superata. | 
| Platform.EndpointRequestThrottle | La quota di frequenza delle richieste dell'endpoint è stata superata. | 
| Platform.AccountActiveVCPUArm64Throttle | È stata raggiunta la quota di vCPU attiva dell'account. | 
| Platform.EndpointMaxEnvThrottle | È stato raggiunto il limite massimo di ambienti dell'endpoint. | 
| Platform.EndpointConcurrentInitThrottle | Troppi ambienti di esecuzione si inizializzavano contemporaneamente per l'endpoint. Riprova con backoff esponenziale. | 
| Runtime.RequestTimeout | La funzione non ha restituito una risposta entro il timeout configurato. | 
| Runtime.OutOfMemory | La funzione ha superato il limite di memoria e il processo è stato interrotto. | 
| Runtime.Unreachable | Il processo di runtime si è bloccato, è terminato o ha rifiutato la connessione. | 
| Runtime.Exit | Il processo di runtime è terminato tra una richiesta e l'altra. | 
| Runtime.ExitError | Il processo di runtime è terminato con un errore. | 
| Runtime.InvalidResponse | Le intestazioni di risposta del runtime hanno superato il buffer di lettura. | 
| Runtime.OriginRequestError | Il processo di candidatura non è riuscito durante la gestione di una richiesta. Controlla i registri dell'applicazione per i dettagli. | 
| Runtime.ImportCodeError | Il runtime non è riuscito a importare o risolvere il punto di ingresso, ad esempio un modulo mancante o un percorso errato. | 
| Runtime.InitTimeout | La tua funzione ha superato il timeout di inizializzazione durante il provisioning della sandbox. | 
| Application.InitCodeError | Il codice di inizializzazione ha generato un errore prima che la funzione iniziasse a servire le richieste. | 
| Application.TimeoutListenError | Il codice di inizializzazione non ha iniziato ad ascoltare sulla porta prima della scadenza di inizializzazione. | 

Per le metriche di limitazione che identificano il limite applicato (per i tipi,, e `Platform.EndpointMaxEnvThrottle` di errore) `Platform.AccountRequestThrottle` `Platform.EndpointRequestThrottle``Platform.AccountActiveVCPUArm64Throttle`, vedi. [Metriche di utilizzo e limitazione a livello regionale](web-functions-monitoring-metrics.md#web-functions-monitoring-metrics-usage)

## Mancano i log o le metriche
<a name="web-functions-troubleshooting-logs"></a>
+ Verifica che il ruolo di esecuzione possa creare gruppi e flussi di log e inserire eventi di log sia per il gruppo di log di destinazione che per il relativo gruppo di log. `.local`
+ Cerca nel gruppo di log centralizzato nella regione di origine. Non create strumenti di diagnostica che dipendono da aree di replica o gruppi di log temporanei. `.local`
+ Imposta su `DEBUG` quando `systemLogLevel` ne hai bisogno. `platform.requestComplete`
+ Consenti il ritardo nell'invio della telemetria dopo la creazione o l'aggiornamento delle risorse. Non trattate l'assenza temporanea di una metrica o di un evento di registro come prova che una richiesta non è stata eseguita.
+ Ricorda che le metriche sono scarse. Configura gli allarmi in modo che le metriche di errore mancanti non vengano violate, laddove appropriato.

Se non viene visualizzato alcun registro dell'applicazione, il ruolo di esecuzione potrebbe non avere le autorizzazioni Amazon CloudWatch Logs. Allega la policy `AWSLambdaBasicExecutionRole` gestita al ruolo di esecuzione, oppure concedi`logs:CreateLogGroup`, e`logs:CreateLogStream`. `logs:PutLogEvents` Per le autorizzazioni richieste, consulta [Ruolo di esecuzione](web-functions-permissions.md#web-functions-permissions-execution-role).

## Problemi di archiviazione e crittografia del codice
<a name="web-functions-troubleshooting-storage-encryption"></a>

Versione dell'oggetto Amazon S3 mancante o inaccessibile  
Verifica che il bucket abbia ancora il controllo delle versioni abilitato, che esista la versione esatta dell'oggetto e che sia il chiamante che il responsabile del servizio Lambda dispongano delle autorizzazioni di lettura richieste. Se una revisione attiva perde l'accesso alla versione dell'oggetto bloccata, crea una nuova revisione che faccia riferimento a una versione disponibile. Per informazioni dettagliate, vedi [Distribuzione del codice Web Function da Amazon S3](web-functions-code-s3.md).

AWS KMS errore di accesso  
Controlla le autorizzazioni del chiamante, la politica delle chiavi, il contesto di crittografia, lo stato della chiave e l'autorizzazione del principale del servizio Lambda. `kms:Decrypt` Per `MultiRegion` gli `PerRegion` endpoint, verifica che esista una replica della AWS KMS chiave multiregionale e che sia utilizzabile in ogni regione di destinazione. Per informazioni dettagliate, vedi [Crittografia a riposo per Web Functions](web-functions-encryption.md).

## Problemi con gli endpoint `MultiRegionPerRegion`
<a name="web-functions-troubleshooting-multi-region"></a>

Usa il `regionalEndpoints` campo per identificare la regione interessata. Confronta la sua `stateReason` e `updateStatusReason` con le regioni sane. Controlla le quote regionali, le repliche AWS KMS delle chiavi, la disponibilità del runtime e lo stato di replica della revisione. Dopo aver corretto la causa, ripeti l'aggiornamento dell'endpoint. Per il modello di replica, vedere. [Multi-Region dispiegamento](web-functions-endpoint-replication.md)

Per un `MultiRegion` endpoint, il routing basato sulla latenza (che indirizza le richieste verso la regione con la latenza misurata più bassa) non garantisce che ogni richiesta vada alla regione con la latenza più bassa. Esegui il test dalla posizione del client interessato e ispeziona i log dell'applicazione per determinare quale regione ha gestito la richiesta. Per un `PerRegion` endpoint, verificate anche la configurazione del DNS esterno o del routing front-door.

## Problemi di rete e connettività
<a name="web-functions-troubleshooting-networking"></a>

La maggior parte dei problemi di connettività deriva da una revisione in corso che non contiene alcun riferimento al connettore o fa riferimento a una versione precedente del connettore, oppure da sottoreti di connettori, gruppi di sicurezza o percorsi che bloccano il traffico.

Utilizzate la seguente sequenza per isolare un problema di connettività:

1. Esegui `get-web-function-endpoint`. Controlla la modalità di distribuzione automatica e conferma quale revisione o revisioni ricevono traffico.

1. Esegui `get-web-function-revision` per ogni revisione in corso. Verifica che lo stato sia `Active` e che faccia riferimento alla versione del connettore prevista.

1. Esegui `aws lambda-core get-network-connector --identifier` con il connettore ARN delle revisioni. `egressNetworkConnectorArn` Conferma che `State` è così `ACTIVE` e, se il connettore è stato aggiornato, è così`LastUpdateStatus`. `Successful` Altrimenti, usa `StateReasonCode` o `LastUpdateStatusReasonCode` per identificare la causa, ad esempio `InsufficientRolePermissions``InvalidSubnet`, o`SubnetOutOfIPAddresses`.

1. Verifica la destinazione in base all'indirizzo IP per separare la raggiungibilità della rete dalla risoluzione DNS.

1. Controlla i percorsi della sottorete del connettore, i gruppi di sicurezza di destinazione e gli ACL di rete.

1. Esamina i registri di flusso VPC nelle sottoreti dei connettori.

I sintomi più comuni includono i seguenti.


| Caratteristiche | Verifica | 
| --- | --- | 
| Internet pubblico funziona, ma le risorse VPC no | La revisione in corso non ha alcun riferimento al connettore. | 
| L'accesso VPC funziona per alcune richieste | L'endpoint esegue il routing verso due revisioni con configurazioni di connettori diverse. | 
| Un aggiornamento del connettore non ha alcun effetto | La revisione corrente fa riferimento a una versione precedente del connettore. | 
| L'accesso pubblico si interrompe dopo l'aggiunta di un connettore | Le sottoreti del connettore non dispongono della route NAT o IPv6 richiesta. | 
| Scadenza di una destinazione VPC | Il gruppo di sicurezza di destinazione, la tabella di routing o l'ACL di rete bloccano la connessione. | 
| I log di flusso non contengono record corrispondenti | Il traffico non è entrato nel VPC. Ricontrolla la revisione del server e il riferimento al connettore. | 
| I nomi privati falliscono ma le connessioni IP dirette funzionano | Controlla gli attributi DNS del VPC e le associazioni di zone ospitate private. | 
| IPv4 funziona ma IPv6 fallisce | Verifica la versione del DualStack connettore, le route IPv6 e le regole di sicurezza IPv6. | 
| La revisione in corso è Active ma la funzione non può raggiungere le risorse VPC private | La revisione in corso non imposta un connettore di rete in uscita (). egressNetworkConnectorArn Leggi il campo conget-web-function-revision; se è vuoto, crea una revisione che imposta. egressNetworkConnectorArn Per informazioni dettagliate, vedi [Configurazione della rete per AWS Lambda Funzioni Web](web-functions-networking.md). | 

Non è disponibile un accesso interattivo a un ambiente di esecuzione di funzioni Web. Utilizza i log delle applicazioni, le intestazioni di risposta degli endpoint, i campi dello stato delle risorse, le CloudWatch metriche e i log di flusso VPC per diagnosticare gli errori.

## Prepara un pacchetto di escalation
<a name="web-functions-troubleshooting-support"></a>

Se i controlli precedenti non identificano la causa, raccogli le seguenti informazioni prima di aprire un caso. Supporto AWS Ciò consente al tecnico dell'assistenza di correlare il funzionamento del piano di controllo, l'implementazione regionale, la richiesta e la telemetria:
+ L' Account AWS ID, la regione di origine, il nome della funzione, l'ID di revisione, il nome dell'endpoint, il tipo di endpoint e le regioni di destinazione.
+ Il timestamp UTC e il percorso di richiesta per gli errori rappresentativi, insieme allo stato HTTP e alle intestazioni di risposta. `lambda-web-request-id` `lambda-web-logstream` `lambda-web-error-type`
+ La funzione, la revisione, l'endpoint e la regione e i valori. `state` `stateReason` `updateStatus` `updateStatusReason`
+ Eventi pertinenti del registro centralizzato delle applicazioni e del sistema, metriche di accelerazione e capacità e velocità di traffico approssimativa al momento in cui si è verificato il problema.
+ La AWS CLI versione e una copia redatta della richiesta di gestione. Rimuovi credenziali, segreti dell'applicazione, token e dati sensibili delle richieste.

## Informazioni correlate
<a name="web-functions-troubleshooting-related"></a>
+ [Configurazione della rete per AWS Lambda Funzioni Web](web-functions-networking.md)
+ [Monitoraggio delle funzioni Web Lambda](web-functions-monitoring.md)