Come faccio a risolvere l'errore "[AWS service] was unable to place a task because no container instance met all of its requirements." su Amazon ECS?
Desidero inserire un'attività su Amazon Elastic Container Service (Amazon ECS). Tuttavia, ricevo il seguente errore: "[AWS service] was unable to place a task because no container instance met all of its requirements."
Breve descrizione
Questo errore può essere dovuto a uno o più dei seguenti motivi:
- Nel cluster non è stata trovata alcuna istanza di container
- La porta necessaria per l'attività è già in uso
- La memoria è insufficiente per le tue attività
- Non ci sono unità CPU sufficienti per l'istanza di container
- Non ci sono abbastanza punti di collegamento dell'interfaccia di rete elastica disponibili
- Manca un attributo richiesto per l'istanza di container
Per ulteriori informazioni in merito, consulta la pagina Messaggi di evento relativi ai servizi.
Nota: se non hai ricevuto il messaggio di errore precedente, scegli un articolo in base a uno dei seguenti messaggi di errore ricevuti:
- [AWS service] was unable to place a task because no container instance met all of its requirements. The closest matching container-instance container-instance-id has insufficient CPU units available.
- [AWS service] was unable to place a task because no container instance met all of its requirements. The closest matching container-instance container-instance-id encountered error "AGENT".
Risoluzione
Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS CLI (CLI), assicurati che la versione di AWS CLI che utilizzi sia la più recente.
Per risolvere l'errore, scegli una risoluzione in base al tuo caso d'uso:
- Se non ci sono istanze di container registrate nel cluster, aggiungile.
- Se la porta richiesta dall'attività è già in uso, aggiungi istanze di container al cluster o riduci il numero di attività desiderate.
Nota: se possibile, prova a utilizzare la mappatura dinamica delle porte per consentire alle tue attività di avvalersi di qualsiasi porta disponibile su un'istanza di container. - Se l'istanza di container non dispone di memoria sufficiente per le tue attività, riduci la quantità di memoria nella definizione dell'attività. Oppure avvia più istanze di container nel tuo cluster. Per ulteriori informazioni, consulta la sezione Memoria insufficiente nella pagina Messaggi di evento relativi ai servizi. La troverai cliccando su: service (service-name) was unable to place a task because no container instance met all of its requirements.
- Se l'istanza di container non dispone di unità CPU sufficienti, modifica la CPU richiesta dalle attività o avvia più istanze di container nel cluster.
Per ulteriori informazioni, consulta la sezione CPU insufficiente nella pagina Messaggi di evento relativi ai servizi. La troverai cliccando su service (service-name) was unable to place a task because no container instance met all of its requirements. Oppure consulta la pagina How do I resolve "the closest matching container-instance container-instance-id has insufficient CPU units available" error in Amazon ECS? - Se l'istanza di container non ha punti di collegamento dell'interfaccia di rete elastica disponibili, aggiungi altre istanze di container al cluster. Per ulteriori informazioni, consulta la sezione Punti di collegamento delle interfacce di rete elastiche insufficienti nella pagina Messaggi di evento relativi ai servizi. La troverai cliccando su service (service-name) was unable to place a task because no container instance met all of its requirements. Se il problema persiste, prova a utilizzare awsvpcTrunking per aumentare la densità dell'interfaccia di rete elastica sulle tue istanze Amazon Elastic Compute Cloud (Amazon EC2).
- Se all'istanza di container manca un attributo richiesto, consulta la sezione Attributo richiesto mancante nell'istanza di container nella pagina Messaggi di evento relativi ai servizi. La troverai cliccando su service (service-name) was unable to place a task because no container instance met all of its requirements. Per trovare gli attributi mancanti, esegui il comando ecs-cli check-attributes:
ecs-cli check-attributes --task-def Task_Definition --container-instances Container_Instance --cluster Cluster_Name
Nota: in Task_Definition Name, inserisci il nome della definizione dell'attività. In Container_Instance, inserisci il nome della tua istanza di container. In Cluster_Name, inserisci il nome del tuo cluster.
- Puoi configurare un servizio Amazon ECS per l'esecuzione su una sottorete diversa da quella dell'istanza di container. In questo caso, il comando ecs-cli-check-attributes restituirà None per gli attributi mancanti anche se l'operazione non va a buon fine a causa dell'errore associato. Assicurati che le sottoreti del servizio e dell'istanza di container corrispondano. Per farlo, ricrea il servizio Amazon ECS nella sottorete in cui si trova l'istanza di container. Per ulteriori informazioni, consulta le pagine Parametri di definizione di attività e Configurazione dell'agente del container Amazon ECS.
Ad esempio, se esegui il comando seguente:
ecs-cli check-attributes --task-def task:1 --container-instances 650cf1df296749e1bce1b9e0cebb588a --cluster test-cluster
L'output sarà simile a questo:
Container Instance Missing Attributes tes-cluster None
Per ulteriori informazioni esegui il comando:
ecs-cli --help
Informazioni correlate
Contenuto pertinente
- AWS UFFICIALEAggiornata 3 mesi fa
- AWS UFFICIALEAggiornata 3 anni fa
- AWS UFFICIALEAggiornata un anno fa