Come posso risolvere l'errore "An error occurred (TargetNotConnectedException) when calling the ExecuteCommand operation" in Amazon ECS?

2 minuti di lettura
0

Quando provo a eseguire il comando execute-command dell’interfaccia della linea di comando AWS (AWS CLI) in Amazon Elastic Container Service (Amazon ECS), ricevo il seguente messaggio di errore: "An error occurred (TargetNotConnectedException) when calling the ExecuteCommand operation: The execute command failed due to an internal error. Try again later".

Breve descrizione

Potresti ricevere questo messaggio di errore per i seguenti motivi:

  • Il ruolo dell’attività di Amazon ECS non dispone delle autorizzazioni necessarie per eseguire il comando execute-command.
  • Il ruolo o l'utente di AWS Identity and Access Management (IAM) che esegue il comando non dispone delle autorizzazioni necessarie.

Nota: se visualizzi dei messaggi di errore quando esegui i comandi dell'interfaccia della linea di comando AWS, consulta la sezione Risolvere gli errori AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Soluzione

Verifica le autorizzazioni per i ruoli delle attività di Amazon ECS

Viene visualizzato questo messaggio di errore quando il ruolo dell’attività di Amazon ECS non dispone delle autorizzazioni necessarie. Per risolvere questo errore, crea una policy IAM con le autorizzazioni necessarie, quindi allega la policy al ruolo dell’attività di Amazon ECS.

  1. Crea la seguente policy IAM:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
          ],
          "Resource": "*"
        }
      ]
    }
    Nota: assicurati che queste autorizzazioni non vengano negate a livello di AWS Organizations.
  2. Allega la policy al ruolo dell’attività di Amazon ECS.

Potrebbero verificarsi ritardi nell'apportare queste modifiche a livello dell’attività. Pertanto, attendi qualche istante dopo aver collegato la policy al ruolo dell'attività, quindi esegui il comando execute-command.

Verifica le autorizzazioni dell'utente o del ruolo IAM

L'utente o il ruolo IAM che esegue il comando execute-command deve disporre delle seguenti autorizzazioni:

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

Se l'errore persiste, esegui lo script amazon-ecs-exec-checker dal sito Web di GitHub. Questo script consente di controllare e di convalidare l'ambiente AWS CLI e il cluster o l'attività di Amazon ECS. Lo script ti informa anche di quale prerequisito non è stato soddisfatto.

Informazioni correlate

Utilizzo di ECS Exec

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa