Come posso risolvere l'errore "An error occurred (TargetNotConnectedException) when calling the ExecuteCommand operation" ("Si è verificato un errore (TargetNotConnectedException) durante la chiamata dell'operazione ExecuteCommand") in Amazon ECS?

3 minuti di lettura
0

Quando si tenta di eseguire il comando execute-command di AWS Command Line Interface (AWS CLI) in Amazon Elastic Container Service (Amazon ECS), viene visualizzato il seguente errore: "An error occurred (TargetNotConnectedException) when calling the ExecuteCommand operation: The execute command failed due to an internal error. Try again later" ("Si è verificato un errore (TargetNotConnectedException) durante la chiamata dell'operazione ExecuteCommand": il comando di esecuzione non è riuscito a causa di un errore interno. Riprova più tardi")

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 AWS Identity and Access Management (IAM) che esegue il comando non dispone delle autorizzazioni necessarie.

Nota: se ricevi un messaggio di errore durante l'esecuzione dei comandi di AWS CLI, assicurati di utilizzare la versione più recente di AWS CLI.

Risoluzione

Controlla le autorizzazioni del ruolo dell'attività di Amazon ECS

Questo messaggio di errore viene visualizzato 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 e quindi collega 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 siano negate a livello di AWS Organizations.

2.    Collega la policy al ruolo dell'attività di Amazon ECS.

La propagazione di queste modifiche a livello di attività potrebbe richiedere qualche momento. Pertanto, dopo aver collegato la policy al ruolo dell'attività, attendi qualche istante prima di provare a eseguire il comando execute-command.

Controlla le autorizzazioni dell'utente o del ruolo IAM

Assicurati che l'utente o il ruolo IAM che esegue il comando execute-command disponga 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 continui a ricevere il messaggio di errore, esegui lo script amazon-ecs-exec-checker. Questo script consente di controllare e convalidare l'ambiente dell'interfaccia a riga di comando di AWS e il cluster o l'attività di Amazon ECS. Lo script ti informa anche sul prerequisito che non è soddisfatto.


Informazioni correlate

Abilitazione e utilizzo di ECS Exec

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa