New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
Perché la mia attività Amazon ECS viene interrotta?
Desidero risolvere un problema relativo a un’attività Amazon Elastic Container Service (Amazon ECS) interrotta.
Breve descrizione
Le tue attività Amazon ECS potrebbero interrompersi per uno dei seguenti motivi:
- Container essenziale nell'attività terminato
- Controlli di integrità Elastic Load Balancing (ELB) non riusciti
- Controlli sullo stato dei container non riusciti
- Istanza del container non intatta
- Manutenzione dell'infrastruttura sottostante
- Evento di scalabilità del servizio attivato
- ResourceInitializationError
- CannotPullContainerError
- Attività interrotta dall'utente
Risoluzione
Puoi utilizzare l'API DescribeTasks per visualizzare i dettagli di un'attività interrotta. Tuttavia, i dettagli relativi all'attività interrotta vengono visualizzati solo per un'ora nei risultati restituiti. Per avere più tempo per visualizzare i dettagli delle attività interrotte, utilizza un modello AWS CloudFormation dal sito Web GitHub. Utilizza il modello per archiviare i log di Amazon CloudWatch da un evento EventBridge che viene attivato quando un'attività viene interrotta.
Motivi di interruzione
Di seguito sono riportati i motivi più comuni per cui un'attività Amazon ECS potrebbe interrompersi.
Container essenziale nell'attività terminato
Tutte le attività devono avere almeno un container essenziale. Se il parametro essenziale di un container è contrassegnato come vero e fallisce o si interrompe, tutti i container dell'operazione vengono interrotti. Per capire perché un'attività è terminata con questo motivo, utilizza l'API DescribeTasks per identificare il codice di uscita. Quindi, completa i passaggi nella sezione Codici di uscita comuni di questo articolo.
Controlli di integrità Elastic Load Balancing (ELB) non riusciti
Quando un'attività fallisce a causa dei controlli di integrità ELB, conferma che il tuo gruppo di sicurezza del container consenta il traffico proveniente dal bilanciatore del carico. Completa i seguenti passaggi:
- Definisci un periodo di tolleranza del controllo di integrità minimo. Questa impostazione indica al pianificatore di servizi di ignorare i controlli di integrità Elastic Load Balancing per un periodo di tempo predefinito dopo l'inizio di un'attività.
- Utilizza la modalità di avvio lento. Per impostazione predefinita, un target riceve le richieste non appena viene registrato in un gruppo target e supera un controllo di integrità iniziale. La modalità di avvio lento consente ai target di riscaldarsi prima che il bilanciatore del carico invii loro una quota completa di richieste.
- Monitora le metriche della CPU e della memoria del servizio. Ad esempio, una CPU elevata può impedire all'applicazione di rispondere e generare un errore 502.
- Controlla i log delle applicazioni per verificare la presenza di errori.
- Controlla se la porta ping e il percorso del controllo di integrità sono configurati correttamente.
- Riduci il percorso del controllo di integrità da Amazon Elastic Compute Cloud (Amazon EC2), quindi conferma il codice di risposta.
Controlli sullo stato dei container non riusciti
È possibile definire i controlli di integrità nell'API TaskDefinition. Oppure puoi definire i controlli di integrità nel Dockerfile. Per ulteriori informazioni, consulta Healthcheck sul sito Web Docker.
Per visualizzare lo stato di integrità dei singoli container e dell'attività, utilizza l’API DescribeTasks.
Lo stato di uscita del comando di controllo dell’integrità deve indicare che il contenitore è integro. Per verificare la presenza di errori dell'applicazione nei log del container, utilizzare le impostazioni del driver di registro specificate nella definizione dell'attività. Di seguito sono riportati i valori possibili per lo stato del controllo di integrità:
- 0: integro Il container è integro e pronto all'uso
- **1: non integro ** Il container non funziona correttamente
- **2: riservato ** Non utilizzare questo codice di uscita
(istanza i-##) (porta #) non è integro (motivo per cui i controlli di integrità non sono riusciti)
Questo messaggio di errore indica che lo stato del container è non integro. Per risolvere questo problema, completa le seguenti attività:
- Verifica che il gruppo di sicurezza collegato all'istanza del container consenta il traffico.
- Conferma che c'è una risposta positiva senza indugio dal backend.
- Aggiorna il tempo di risposta a un valore corretto.
- Controlla i log di accesso del bilanciatore del carico per ulteriori informazioni sugli errori.
Servizio ABCService: ECS sta eseguendo la manutenzione sull'infrastruttura sottostante che ospita l'attività
Questo messaggio di errore indica che l'operazione è stata interrotta a causa di un problema di manutenzione dell'attività. Per ulteriori informazioni, consulta le domande frequenti sulla manutenzione delle attività di AWS Fargate su Amazon ECS.
Se l'istanza del container fa parte di un gruppo Auto Scaling, è necessario avviare una nuova istanza del container e quindi posizionare le attività. Per ulteriori informazioni, consulta Verifica un'attività di ridimensionamento per un gruppo Auto Scaling.
Evento di scalabilità del servizio ECS attivato
Questo messaggio di errore è un messaggio di servizio standard. Amazon ECS utilizza il servizio Application Auto Scaling per fornire questa funzionalità. Il servizio ECS può aumentare o diminuire automaticamente il numero di attività desiderato. Per risolvere questo messaggio di errore, completa le seguenti attività:
- Controlla gli allarmi di CloudWatch per eventuali modifiche alle tue attività.
- Verifica eventuali distribuzioni pianificate che potrebbero influire sulle tue attività.
ResourceInitializationError: impossibile recuperare i segreti o l'autenticazione del registro: recupero delle risorse di esecuzione non riuscito
Per risolvere questo messaggio di errore, consulta Come posso risolvere il messaggio di errore “unable to pull secrets or registry auth” in Amazon ECS?
CannotPullContainerError
Questo messaggio di errore indica che il ruolo di esecuzione dell'attività utilizzato non dispone dell'autorizzazione per comunicare con Amazon ECS. Per risolvere questo problema, completa le seguenti attività:
- Verifica che il ruolo di esecuzione dell'attività disponga delle autorizzazioni necessarie. Amazon ECS fornisce la policy gestita denominata AmazonECSTaskExecutionRolePolicy che contiene le autorizzazioni per la maggior parte dei casi d'uso.
- Verifica che l'endpoint del servizio Amazon Elastic Container Registry (Amazon ECR) sia accessibile a: ecr.region.amazonaws.com e dkr.ecr.region.amazonaws.com.
- Per le immagini private che richiedono l’autenticazione, conferma che repositoryCredentials e credentialsParameter siano definiti con le informazioni corrette. Per ulteriori informazioni, consulta Utilizzo di immagini di container non AWS in Amazon ECS.
Attività interrotta dall'utente
Questo messaggio di errore indica che l'attività ha ricevuto uno StopTask. Per identificare chi ha avviato la chiamata, visualizza StopTask in CloudTrail per le informazioni sull'identità dell'utente.
Codici di uscita comuni
Di seguito sono riportati i codici di uscita più comuni:
- 0: Entrypoint, success o CMD sta completando la sua esecuzione. Il container è interrotto.
- 1: Si riferisce all’errore di un'applicazione. Per ulteriori informazioni, consulta i registri delle applicazioni.
- 137: Si verifica quando l'attività è stata forzata a uscire (SIGKILL) per il container.
Se non rispondi a un ** SIGTERM ** entro un periodo predefinito di 30 secondi, viene inviato il valore SIGKILL e i container vengono forzatamente interrotti. È possibile configurare il periodo predefinito di 30 secondi nell'agente del container ECS con il parametro ECS\ _CONTAINER_STOP\ _TIMEOUT. Questo codice di uscita può verificarsi anche in una situazione di memoria insufficiente (OOM). Per verificare se si è verificata una situazione di memoria insufficiente, rivedi le metriche di CloudWatch. - 139: Si verifica in caso di errore di segmentazione. Questo di solito accade quando l'applicazione tenta di accedere a un'area di memoria che non è disponibile o è presente una variabile di ambiente non impostata o non valida.
- 255: Si verifica quando il comando ENTRYPOINT CMD nel container non riesce a causa di un errore. Per confermare che questa sia la causa, rivedi le metriche di CloudWatch.
Messaggi di errore comuni
Di seguito sono riportati i messaggi di errore più comuni:
Nel cluster non è stata trovata alcuna istanza di container
Per risolvere questo messaggio di errore, consulta la sezione sulle istanze dei container per il tuo cluster. Se necessario, avvia un'istanza del container.
Eccezione di parametro non valido
Per risolvere questo messaggio di errore, rivedi i parametri di TaskDefinition. Tutti i parametri definiti in **TaskDefinition ** devono essere presenti e l'Amazon Resource Name (ARN) deve essere corretto. Verifica che il ruolo dell'attività e il ruolo di esecuzione dell'attività dispongano di autorizzazioni sufficienti.
Hai raggiunto il limite del numero di attività che puoi eseguire contemporaneamente
Per risolvere questo messaggio di errore, rivedi i tuoi limiti. Per ulteriori informazioni sui limiti, consulta le quote del servizio ECS.
Per tutte le altre richieste di aumento di quote, crea un caso nella console Supporto AWS, quindi scegli Aumento del limite del servizio.
Video correlati


Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata un mese fa
- AWS UFFICIALEAggiornata 2 mesi fa