Come posso impedire che il mio servizio Amazon ECS si stabilizzi in AWS CloudFormation?

4 minuti di lettura
0

Il mio servizio Amazon Elastic Container Service (Amazon ECS) non si stabilizza in AWS CloudFormation. Ricevo il seguente errore: "Il servizio ARN:aws:ecs:US-east-accountId:Service/ServiceName non si è stabilizzato."

Breve descrizione

Un servizio creato in Amazon ECS non si stabilizza se non è nello stato specificato dal modello AWS CloudFormation. Per confermare che un servizio ha avviato il numero desiderato di attività con la definizione dell'attività desiderata, AWS CloudFormation effettua ripetute chiamate all'API DescribeService. Queste chiamate controllano lo stato del servizio fino al raggiungimento dello stato desiderato. Il processo di chiamata può richiedere fino a tre ore. Quindi, AWS CloudFormation scade e restituisce il messaggio "Service ARN did not stabilizzized". Mentre AWS CloudFormation verifica lo stato del servizio, lo stack che contiene il servizio rimane nello stato CREATE_IN_PROGRESS o UPDATE_IN_PROGRESS e non può essere aggiornato.

Se non riesci a risolvere immediatamente il problema sottostante con le attività del servizio Amazon ECS e non desideri attendere il timeout delle chiamate all'API DescribeService, puoi forzare manualmente lo stato della risorsa del servizio Amazon ECS in AWS CloudFormation su CREATE_COMPLETE. Per fare ciò, imposta manualmente il numero desiderato del servizio su zero nella console Amazon ECS per interrompere l'esecuzione delle attività. AWS CloudFormation considera quindi l'aggiornamento riuscito, poiché il numero di attività è pari a zero.

Importante: forzare manualmente AWS CloudFormation a uno stato CREATE\ _COMPLETE non è una buona pratica per i servizi di produzione, poiché tutte le attività vengono interrotte e questa operazione può causare un'interruzione della produzione.

Nota: se ricevi errori durante l'esecuzione dei comandi AWS Command Line Interface (AWS CLI), assicurati di utilizzare la versione più recente dell'interfaccia a riga di comando di AWS.

Risoluzione

Verifica la creazione di risorse

  1. Nel tuo modello AWS CloudFormation, crea una risorsa AWS::ECS::Service. Ad esempio:
Resources:
ECSServiceA:
 Type: AWS::ECS::Service
Properties:
  DesiredCount: 1
  Cluster: awsExampleECSCluster
  LaunchType: EC2
  ServiceName: "MyNginxService2"
  TaskDefinition: NginxTask:1
  1. Apri la console AWS CloudFormation, quindi seleziona il tuo stack.

  2. Scegli la scheda Eventi, quindi verifica che la tua risorsa sia stata creata.

Aggiorna il numero desiderato del servizio

Puoi aggiornare il numero desiderato del servizio al tuo valore originale con l'interfaccia a riga di comando di AWS o la console Amazon ECS.

Utilizzo dell'interfaccia a riga di comando di AWS:

  1. Per descrivere il servizio ed elencare gli eventi del servizio, esegui il comando seguente:
aws ecs describe-services --cluster awsExampleECSCluster --services MyNginxService2
  1. Per aggiornare il numero desiderato del servizio, esegui il seguente comando:
aws ecs update-service --cluster awsExampleECSCluster --service MyNginxService2 --desired-count 0
  1. Aggiorna --desired-count al tuo valore originale.

Utilizzo della console Amazon ECS:

  1. Apri la console Amazon ECS.

  2. Nel riquadro di navigazione, scegli Clusters, quindi seleziona il cluster che contiene il servizio Amazon ECS che hai creato.

  3. Nella pagina Cluster, scegli il cluster che contiene il servizio Amazon ECS che hai creato.

  4. Nella pagina del cluster selezionato, nella colonna Nome del servizio, scegli il tuo servizio.

  5. Scegli la scheda Eventi, quindi scegli Aggiorna.

  6. Nella pagina Configura servizio, in Numero di attività, immettere 0.

  7. Scegli Passaggio successivo per passare alla fine della procedura guidata diUpdate Service, quindi scegli Update Service.

Il servizio ora raggiunge uno stato stazionario e trasforma la risorsa del servizio Amazon ECS in AWS CloudFormation in CREATE_COMPLETE o UPDATE_COMPLETE.

Importante: per sincronizzare lo stack di AWS CloudFormation con le proprietà del servizio Amazon ECS dopo aver risolto il problema con le attività sottostanti, devi modificare manualmente il numero desiderato (DesiredCount) riportandolo al valore originale del modello.


Informazioni correlate

Aggiornamento di un servizio

servizio di aggiornamento

servizi stabili

AWS UFFICIALE
AWS UFFICIALEAggiornata 3 anni fa