Salta al contenuto

Come posso risolvere gli errori "503 Service Unavailable" di CloudFront?

3 minuti di lettura
0

La mia distribuzione Amazon CloudFront ha ricevuto un errore "503 Service Unavailable".

Risoluzione

Per risolvere un codice di stato HTTP 503 (Service Unavailable), correggi l'errore intraprendendo le seguenti azioni.

Errori HTTP 503 relativi al server di origine

Se sono presenti problemi di prestazioni sul server di origine o il server non è disponibile, potresti ricevere l'errore "503 Service Unavailable".

Per risolverli, consulta Il server di origine non dispone di capacità sufficiente per supportare la frequenza delle richieste.

Errori HTTP 503 relativi a Lambda@Edge o alla funzione di CloudFront

Se sono presenti eccezioni non gestite nella funzione AWS Lambda o errori nel codice, potresti ricevere l'errore "503 Service Unavailable".

Per correggere il codice, aggiungi istruzioni di registrazione alle funzioni Lambda. Esamina i log di Lambda@Edge e i log di Funzioni CloudFront per verificare che CloudFront funzioni correttamente. Per ulteriori informazioni, consulta Risoluzione dei problemi di invocazione in Lambda e Risoluzione dei problemi di esecuzione in Lambda.

Se superi una quota di Lambda@Edge, Lambda blocca l'esecuzione della funzione Lambda e CloudFront restituisce un errore HTTP 503. Per risolvere un errore HTTP 503 dovuto al superamento delle quote, consulta Come posso risolvere gli errori 500, 502 e 503 causati dalle funzioni Lambda@Edge in CloudFront?

Errori HTTP 503 relativi ad Amazon S3

Se hai applicazioni integrate o le origini sono in Amazon Simple Storage Service (Amazon S3), potresti ricevere un errore HTTP 500 o 503. Per risolverli, consulta Come faccio a risolvere un errore HTTP 500 o 503 di Amazon S3?

Evita che CloudFront memorizzi nella cache gli errori HTTP 503

Per impostazione predefinita, CloudFront inoltra le risposte di errore dall'origine al client. CloudFront memorizza nella cache la risposta di errore dell'origine per 10 secondi.

Se la risposta di errore dell'origine contiene un'intestazione Cache-Control, CloudFront memorizza l'errore nella cache con il relativo Time to Live (TTL) anziché i 10 secondi predefiniti. CloudFront non memorizza nella cache le proprie risposte di errore, a meno che non sia specificato diversamente in una risposta di errore personalizzata. Puoi creare una risposta di errore personalizzata per gli errori HTTP 503 con un TTL di 0 secondi per evitare che CloudFront memorizzi l'errore nella cache.

Per ottimizzare l'efficienza della cache, utilizza la policy CachingOptimized. Questa policy imposta un TTL minimo inferiore di 1 secondo per le risposte di errore anziché il valore predefinito di 10 secondi. Per ulteriori informazioni, consulta Usa policy di cache gestite.

È consigliabile inserire una logica di ripetizione nelle applicazioni per ritentare le richieste che restituiscono un errore HTTP 503. Tutti gli AWS SDK hanno un meccanismo di ripetizione integrato con un algoritmo che utilizza il backoff esponenziale. Questo algoritmo implementa tempi di attesa sempre più lunghi tra i tentativi per le risposte di errore consecutive. La maggior parte degli algoritmi di backoff esponenziale utilizza il jitter (ritardo casuale) per prevenire collisioni successive. Per ulteriori informazioni, consulta Comportamento di ripetizione.

AWS UFFICIALEAggiornata 8 mesi fa