Como soluciono o erro “Ocorreu um erro (TargetNotConnectedException) ao chamar a operação ExecuteCommand” no Amazon ECS?

Data da última atualização: 18/03/2022

Quando tento executar o comando execute-command do AWS Command Line Interface (AWS CLI) no Amazon Elastic Container Service (Amazon ECS), recebo o seguinte erro:

“Ocorreu um erro (TargetNotConnectedException) ao chamar a operação ExecuteCommand: O comando execute falhou devido a um erro interno. Tente novamente mais tarde”

Breve descrição

Você pode receber esse erro devido aos seguintes motivos:

  • A função de tarefa do Amazon ECS não tem as permissões necessárias para executar o comando execute-command.
  • A função ou o usuário do AWS Identity and Access Management (IAM) que está executando o comando não tem as permissões necessárias.

Observação: se você receber erros ao executar comandos do AWS CLI, certifique-se de estar utilizando a versão mais recente da AWS CLI.

Resolução

Verifique as permissões da função de tarefa do Amazon ECS

Você recebe esse erro quando a função de tarefa do Amazon ECS não tem as permissões necessárias. Você pode resolver esse erro criando uma política do IAM com as permissões necessárias e anexando a política à função de tarefa do Amazon ECS.

1.    Crie a seguinte política do IAM:

{
   "Version": "2012-10-17",
   "Statement": [
       {
       "Effect": "Allow",
       "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
       ],
      "Resource": "*"
      }
   ]
}

Observação: certifique-se de que essas permissões não sejam negadas no nível do AWS Organizations.

2.    Anexe a política à função de tarefa do Amazon ECS.

Pode haver atrasos na propagação dessas alterações no nível da tarefa. Portanto, aguarde algum tempo depois de anexar a política à função de tarefa e tente executar o comando execute-command.

Verifique as permissões de usuário ou função do IAM

Certifique-se de que o usuário ou a função do IAM que está executando o comando execute-command tenha as seguintes permissões:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ecs:ExecuteCommand",
            "Resource": "arn:aws:ecs:example-region:example-arn:cluster/example-cluster/*"
        }
    ]
}

Se você ainda estiver recebendo o erro, execute o script amazon-ecs-exec-checker. Esse script permite verificar e validar o ambiente da AWS CLI e o cluster ou tarefa do Amazon ECS. O script também o notifica sobre o pré-requisito que não foi atendido.


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?