Salta al contenuto

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

3 minuti di lettura
0

Ho provato a eseguire il comando dell'Interfaccia della linea di comando AWS (AWS CLI) execute-command in Amazon Elastic Container Service (Amazon ECS). Ma ricevo il 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

Ricevi il messaggio di errore "ExecuteCommand" per i seguenti motivi:

Risoluzione

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori relativi ad AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Aggiorna le autorizzazioni del ruolo dell'attività Amazon ECS

Completa i seguenti passaggi:

  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 la configurazione non blocchi le autorizzazioni precedenti a livello di AWS Organizations.
  2. Collega la policy al ruolo dell’attività Amazon ECS.

Potrebbero verificarsi ritardi nell'aggiornamento delle autorizzazioni del ruolo dell'attività. Attendi qualche minuto dopo aver collegato la policy al ruolo dell'attività, quindi esegui il comando execute-command.

Verifica le autorizzazioni dell'utente o del ruolo IAM

Per verificare l'ID utente e il ruolo IAM con cui hai effettuato l'accesso, esegui questo comando:

 aws sts get-caller-identity

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

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

Collega una nuova policy o aggiorna la policy esistente per l'utente o il ruolo in modo da includere le autorizzazioni precedenti.

Controlla se hai impostato PIDMode sull'attività nella definizione dell'attività

Puoi avere una sola sessione ECS Exec per ogni namespace degli ID di processo (PID). Se condividi un namespace PID in un'attività, puoi avviare le sessioni ECS Exec in un solo container.

Controlla se hai impostato readonlyRootFilesystem su true nella definizione dell'attività

Per creare le directory e i file richiesti, l'Agente SSM richiede un file system del container scrivibile. Non puoi utilizzare il parametro di definizione dell'attività readonlyRootFilesystem o qualsiasi altro metodo per rendere il file system root di sola lettura.

Se continui a ricevere l'errore dopo aver aggiornato la definizione dell'attività, esegui amazon-ecs-exec-checker dal sito web GitHub. Lo script amazon-ecs-exec-checker convalida l'ambiente AWS CLI e il cluster o l'attività Amazon ECS. Lo script ti avvisa anche se non soddisfi un prerequisito.

Informazioni correlate

Utilizzo di ECS Exec

AWS UFFICIALEAggiornata 6 mesi fa