Como resolvo o erro “A criação do serviço não foi idempotente” que ocorre quando eu crio um novo serviço do Amazon ECS?

3 minuto de leitura
0

Quando eu crio um novo serviço do Amazon Elastic Container Service (Amazon ECS), recebo o seguinte erro: “A criação do serviço não foi idempotente.”

Resolução

Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

O erro não foi idempotente ocorre quando você cria um serviço que tem o mesmo nome de um serviço já criado no banco de dados do Amazon ECS. Para resolver esse problema, execute as seguintes ações.

Certifique-se de não usar um nome de cluster já criado

Se você tentar criar um cluster com o mesmo nome de outro, encontrará um dos seguintes erros:

“InvalidParameterException: A criação do serviço não foi idempotente.”

-or-

“Solicitação inválida: erro CreateService: O serviço de criação não é idempotente.”

Para resolver o erro, verifique se não há um serviço com o mesmo nome. Se você excluiu recentemente um serviço com o mesmo nome, verifique se o estado do serviço é EXCLUÍDO.

Observação: o erro não é idempotente pode ocorrer mesmo se você excluir o cluster, pois o cluster ainda pode estar na fase de exclusão.

Se o serviço estiver no estado DESPROVISIONANDO, verifique se alguma tarefa no serviço está travada no desprovisionamento. Para ver o status de todas as tarefas no cluster, execute a API DescribeTasks. Ou conclua as seguintes etapas:

  1. Abra o console do Amazon ECS.
  2. Na página de navegação, escolha Clusters.
  3. Selecione o cluster.
  4. Escolha a guia Tarefas.

Verifique a chamada de API UpdateService para o serviço excluído para verificar se o serviço ainda está ativo. Além disso, verifique na chamada de API Delete Service o motivo “O serviço contém instâncias registradas; exclua as instâncias antes de excluir o serviço”. Se a API Delete Service incluir esse motivo, exclua a instância.

Recriar o perfil do IAM excluído

Se você usa um perfil do AWS Identity and Access Management (IAM) para uma tarefa, primeiro deve excluir a tarefa antes de excluir o perfil. O perfil do IAM deve estar disponível durante todo o ciclo de vida da tarefa. Isso inclui o desprovisionamento de recursos.

Se você excluiu o perfil do IAM primeiro, conclua as etapas a seguir para recriar o perfil:

  1. Para obter o nome do perfil do IAM anterior, execute o seguinte comando describe-services:
    aws ecs describe-services --cluster clustername --services servicename
    Observação: substitua clustername pelo nome do cluster e servicename pelo nome do serviço.
  2. Recrie o perfil do IAM com o mesmo nome. Para informações sobre as permissões necessárias, consulte Permissões de perfil vinculadas ao serviço do Amazon ECS.

Observação: para encontrar informações sobre o usuário que excluiu o perfil, verifique o evento DeleteRole do AWS CloudTrail.

Criar um novo serviço com um nome diferente

Se você ainda não conseguir criar um novo serviço com o mesmo nome do serviço excluído, crie um novo serviço com um nome diferente.

Informações relacionadas

CreateService

AWS OFICIAL
AWS OFICIALAtualizada há um mês