Come posso risolvere l'errore "Creation of service was not idempotent" che si verifica quando creo un nuovo servizio Amazon ECS?

3 minuti di lettura
0

Quando creo un nuovo servizio Amazon Elastic Container Service (Amazon ECS), ricevo il seguente errore: "Creation of service was not idempotent."

Risoluzione

Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

L'errore not idempotent si verifica quando si crea un servizio con lo stesso nome di un servizio esistente nel database Amazon ECS. Per risolvere l’errore, esegui le seguenti azioni.

Assicurati di non utilizzare un nome di cluster esistente

Se tenti di creare un cluster con lo stesso nome di uno esistente, si verifica uno dei seguenti errori:

"InvalidParameterException: Creation of service was not idempotent."

-oppure-

"Invalid request provided: CreateService error: Create service is not idempotent."

Per risolvere l'errore, assicurati che non esista un servizio con lo stesso nome. Se hai eliminato di recente un servizio con lo stesso nome, verifica che lo stato del servizio sia ELIMINATO.

Nota: l'errore not idempotent può verificarsi anche se elimini il cluster esistente perché il cluster potrebbe essere ancora in fase di eliminazione.

Se il servizio è in stato di DEPROVISIONING, controlla se alcune attività del servizio sono bloccate durante il deprovisioning. Per visualizzare lo stato di tutte le attività nel cluster, esegui l'API DescribeTasks. Completa i seguenti passaggi:

  1. Apri la console Amazon ECS.
  2. Nel pannello di navigazione, scegliCluster.
  3. Seleziona il tuo cluster.
  4. Seleziona la scheda Attività.

Controlla la chiamata API UpdateService per il servizio eliminato per verificare se è ancora attivo. Inoltre, controlla la chiamata API Delete Service per il motivo "Service contains registered instances; delete the instances before deleting the service". Se l'API Delete Service contiene questo motivo, elimina l'istanza.

Ricrea il ruolo IAM eliminato

Se utilizzi un ruolo AWS Identity and Access Management (IAM) per un'attività, devi eliminare l'attività prima di eliminare il ruolo. Il ruolo IAM deve essere disponibile per tutto il ciclo di vita dell'attività. In ciò rientra il deprovisioning delle risorse.

Se hai eliminato prima il ruolo IAM, completa i seguenti passaggi per ricreare il ruolo:

  1. Per ottenere il nome del ruolo IAM precedente, esegui il seguente comando describe-services:
    aws ecs describe-services --cluster clustername --services servicename
    Nota: sostituisci clustername con il nome del tuo cluster e servicename con il nome del servizio.
  2. Ricrea il ruolo IAM con lo stesso nome. Per informazioni sulle autorizzazioni richieste, consulta Autorizzazioni di ruolo collegate ai servizi per Amazon ECS.

Nota: per trovare informazioni sull'utente che ha eliminato il ruolo, controlla l'evento DeleteRole di AWS CloudTrail.

Crea un nuovo servizio con un nome diverso

Se ancora non riesci a creare un nuovo servizio con lo stesso nome del servizio eliminato, crea un nuovo servizio con un nome diverso.

Informazioni correlate

CreateService

AWS UFFICIALE
AWS UFFICIALEAggiornata un mese fa