Salta al contenuto

Perché la mia attività Amazon ECS viene arrestata?

7 minuti di lettura
0

Desidero risolvere un problema relativo a un'attività Amazon Elastic Container Service (Amazon ECS) arrestata.

Risoluzione

Risolvi i problemi relativi a un'attività arrestata

Utilizza la chiamata API DescribeTasks per visualizzare i dettagli di un'attività arrestata. Quindi risolvi i problemi dell'attività in base al motivo dell'arresto e al codice di uscita indicati nei dettagli dell'attività.

I dettagli dell'attività arrestata vengono visualizzati solo per 1 ora nei risultati dell'API. Per avere più tempo per visualizzare i dettagli delle attività arrestate, utilizza il modello amazon-ecs-stopped-tasks-cwlogs sul sito web GitHub.

Chiusura del container essenziale dell'attività

Se il container essenziale si è chiuso, risolvi il problema in base al codice di uscita:

  • Il codice di uscita 0 viene generato quando il comando entrypoint o CMD si conclude con un'esecuzione riuscita e Amazon ECS arresta il container.
  • Il codice di uscita 1 viene generato quando è presente un errore dell'applicazione. Per risolvere questo codice di uscita, consulta i log dell'applicazione.
  • Il codice di uscita 137 si verifica quando non rispondi a un SIGTERM entro 30 secondi e Amazon ECS arresta il container con SIGKILL. Per modificare il tempo predefinito di 30 secondi, aggiorna l'agente container Amazon ECS con il parametro ECS_CONTAINER_STOP_TIMEOUT.
    Nota: questo codice di uscita si verifica anche a causa di errori di esaurimento della memoria. Per verificare l'utilizzo delle risorse, consulta le metriche di Amazon CloudWatch per Amazon ECS.
  • Il codice di uscita 139 viene generato quando l'applicazione tenta di accedere a una Regione della memoria che non è disponibile. Il codice viene generato anche quando un segnaposto di ambiente non impostato o non valido causa un errore di segmentazione. Per risolvere il problema, analizza i log di CloudWatch relativi alle attività Amazon ECS.
  • Il codice di uscita 143 si verifica quando il container riceve un avviso di spegnimento regolare e Amazon ECS lo chiude.
  • Il codice di uscita 255 viene generato quando il comando ENTRYPOINT CMD nel container non riesce a causa di un errore. Per verificare se l'esito negativo dipende effettivamente da un errore, analizza i log di CloudWatch.

Per risolvere il problema, consulta Come posso risolvere il problema relativo ad attività Amazon ECS che si arrestano o non vengono avviate quando il mio container si chiude?

CannotPullContainerError

Questo errore si verifica quando l'attività non viene avviata perché Amazon ECS non è in grado di recuperare l'immagine del container specificata.

Per risolvere il problema per attività che utilizzano il tipo di avvio Amazon Elastic Compute Cloud (Amazon EC2), consulta Come posso risolvere gli errori "CannotPullContainerError" quando avvio un'attività EC2 in Amazon ECS?

Per risolvere il problema per attività Amazon ECS che utilizzano il tipo di avvio AWS Fargate, consulta Come posso risolvere l'errore "cannotpullcontainererror" relativo alle mie attività Amazon ECS su Fargate?

Controlli dell'integrità eseguiti dall'Elastic Load Balancer sull'attività non superati

Per risolvere il problema per attività che utilizzano il tipo di avvio EC2, consulta Come posso fare in modo che le mie attività Amazon ECS che utilizzano il tipo di avvio Amazon EC2 superino il controllo dell'integrità dell'Application Load Balancer?

Per risolvere il problema per attività che utilizzano il tipo di avvio Fargate, consulta Come posso risolvere i problemi relativi ai controlli dell'integrità delle attività di Amazon ECS su Fargate?

Controlli dell'integrità eseguiti sul container non riusciti

Definisci i controlli dell'integrità nell'API HealthCheck o nel Dockerfile. Per ulteriori informazioni, consulta HEALTHCHECK sul sito web Docker.

Per risolvere gli errori di controllo dell'integrità dei container, consulta Come posso risolvere i problemi relativi al controllo dell'integrità del container per le attività di Amazon ECS?

La porta non è integra

Gli errori che contengono "Instance i-## port # is unhealthy" si verificano quando un'istanza Amazon EC2 non integra non risponde ai controlli dell'integrità sulla porta specificata.

Per risolvere il problema, intraprendi le seguenti azioni:

  • Verifica che il gruppo di sicurezza collegato all'istanza di container consenta il traffico richiesto.
  • Esegui questo comando per verificare che il backend risponda senza ritardo:
    ` curl -iv localhost:container-port/path`
    Nota: sostituisci container-port con la porta del tuo container e path con il percorso del controllo dell'integrità.
  • Aumenta il valore del timeout di risposta rispetto ai 30 secondi predefiniti. Aggiorna l'agente container Amazon ECS con il parametro ECS_CONTAINER_STOP_TIMEOUT.

Per ulteriori informazioni su questo messaggio di errore, consulta Log di accesso per il Network Load Balancer.

Amazon ECS sta eseguendo la manutenzione sull'infrastruttura sottostante che ospita l'attività

Questo errore si verifica quando Amazon ECS esegue la manutenzione sui server Fargate che eseguono i container dell'applicazione. Di conseguenza, il servizio Amazon ECS è temporaneamente indisponibile.

Per ulteriori informazioni, consulta Ritiro e manutenzione delle attività per AWS Fargate su Amazon ECS.

Per le attività autonome, consulta Come posso intervenire in merito a una notifica di ritiro di attività Amazon ECS per un'attività eseguita su Fargate?

Evento di dimensionamento del servizio Amazon ECS attivato

Durante un evento di dimensionamento del servizio Amazon ECS, le attività si arrestano perché la policy di dimensionamento riduce il numero di attività eseguite nel servizio. Quindi Amazon ECS arresta le attività per raggiungere il nuovo numero specificato. Questa azione si verifica in genere quando la domanda diminuisce e Amazon ECS richiede meno attività per gestire il carico di lavoro.

Per risolvere l’errore, intraprendi le seguenti azioni:

  • Crea allarmi in CloudWatch che ti segnalino modifiche al servizio o alle attività.
  • Esamina le distribuzioni pianificate che potrebbero influire sulle attività.

Per proteggere le attività dalla terminazione dovuta a eventi di riduzione orizzontale a seguito di dimensionamento automatico o distribuzioni del servizio, utilizza la protezione scalabile di Amazon ECS.

Per ulteriori informazioni, consulta Come posso visualizzare e gestire le azioni di dimensionamento pianificate per i servizi Amazon ECS?

**Attività arrestata da un utente **

Per identificare l'utente che avvia una chiamata API StopTask, visualizza StopTask in AWS CloudTrail per l'informazione userIdentity.

ResourceInitializationError

Per i diversi messaggi di errore ResourceInitialization e i relativi passaggi di risoluzione, consulta Risoluzione degli errori di Amazon ECS ResourceInitializationError.

Per risolvere l'errore "ResourceInitializationError: unable to pull secrets or registry auth", consulta Come posso risolvere un errore "ResourceInitializationError" quando cerco di estrarre segreti o recuperare l'autenticazione Amazon ECR per attività ECS?

Per risolvere l'errore "ResourceInitializationError: failed to validate logger args", consulta Come posso risolvere l'errore "ResourceInitializationError: failed to validate logger args" in Amazon ECS?

SpotInterruptionError

Per ulteriori informazioni sull'errore SpotInterruptionError, consulta Risoluzione degli errori di Amazon ECS SpotInterruption.

Per risolvere l'errore, consulta Come gestisco gli avvisi di terminazione Spot nelle attività AWS Fargate Spot?

OutOfMemoryError

Questo errore si verifica quando un container viene chiuso perché i processi nel container utilizzano più memoria di quella allocata nella definizione dell'attività.

Per risolvere l'errore, consulta Come posso risolvere gli errori OutOfMemory in Amazon ECS?

Risolvi i messaggi di errore che ricevi quando l'attività si arresta

Se ricevi un messaggio di errore quando l'attività si arresta, intraprendi le seguenti azioni di risoluzione in base all'errore riscontrato.

Nel cluster non è stata trovata alcuna istanza di container

Per risolvere il problema, avvia un'istanza di container.

Per esaminare le istanze di container per il cluster, completa i seguenti passaggi:

  1. Apri la console Amazon ECS.
  2. Nel pannello di navigazione, scegliCluster.
  3. Seleziona il cluster.
  4. Scegli la scheda Infrastruttura.
  5. Esamina la sezione Istanze di container.

Se non sono presenti istanze di container, consulta Perché la mia istanza Amazon EC2 non può connettersi al cluster Amazon ECS?

InvalidParameterException

Per risolvere questo messaggio di errore, controlla che i parametri in TaskDefinition esistano e abbiano i nomi della risorsa Amazon corretti. Verifica che il ruolo dell'attività e il ruolo di esecuzione dell'attività abbiano autorizzazioni sufficienti.

Hai raggiunto il numero massimo di attività concorrenti che puoi eseguire

Questo errore si verifica quando superi una quota di servizio Amazon ECS. Per risolvere il problema, consulta Come posso risolvere i problemi relativi alle quote di servizio Amazon ECS?

Informazioni correlate

Risolvi gli errori relativi alle attività arrestate in Amazon ECS

Visualizza gli errori relativi alle attività arrestate in Amazon ECS