Todos os produtos
Search
Central de documentação

Elastic Compute Service:**Gerencie instâncias ECS com o Workbench CLI**

Última atualização: Aug 27, 2026

Use comandos como list, connect, exec e upload/download para consultar instâncias ECS, fazer login sem senha, executar comandos remotos e transferir arquivos. A saída estruturada em json e a propagação do código de saída dos comandos facilitam o consumo por scripts e o diagnóstico rápido de falhas.

Pré-requisitos

  • O Workbench CLI deve estar instalado no seu computador, com as credenciais e as permissões mínimas de RAM configuradas. Para mais informações, consulte Install Workbench CLI and configure credentials.

  • A instância ECS de destino deve ser uma instância Linux com status Running, e o agente do Cloud Assistant deve estar instalado e em execução.

  • Seu computador precisa acessar *.aliyuncs.com e o endpoint WebSocket de backend do Workbench. Os comandos upload e download também exigem que a instância possa acessar o endpoint interno do oss da região correspondente.

Importante

Atualmente, o Workbench CLI suporta conexão apenas com instâncias Linux. Para se conectar a uma instância Windows, use Connect to an instance by using Workbench.

Parâmetros globais

Os três parâmetros globais a seguir aplicam-se a todos os subcomandos do workbench.

Parâmetro

Valor padrão

Descrição

--output / -o

text

Formato de saída. Valores válidos: text e json. Recomendamos usar json para consumo por scripts ou agentes de IA.

--region / -r

Inferido automaticamente

id da região da Alibaba cloud, como cn-hangzhou. A CLI infere a região automaticamente pelo prefixo do id da instância; portanto, geralmente não é necessário especificá-la manualmente.

--profile / -P

Perfil ativo

Especifica o perfil de credencial para este comando, substituindo o perfil ativo. Use esta opção para alternar entre várias contas ou conjuntos de credenciais.

A inferência da região segue esta ordem: mapeamento do prefixo do id da instância → busca de sessões ativas no daemon → **erro solicitando a especificação manual de --region**. Ao usar uma instância pela primeira vez, recomendamos executar primeiro workbench list ecs -r <region> para confirmar o id da instância.

Consultar a lista de instâncias (workbench list ecs)

Use este comando para consultar instâncias ECS por região, status, tag e outras condições, facilitando a localização rápida do id da instância desejada. Por padrão, workbench list equivale a workbench list ecs. Exemplos comuns:

# Query all instances in a specified region
workbench list ecs -r cn-hangzhou

# Query only running instances
workbench list ecs -r cn-hangzhou --status Running

# Filter by tag (multiple --tag options use AND semantics)
workbench list ecs -r cn-hangzhou --tag env=prod --tag app=web

# Filter by instance type, name, VPC, and other conditions
workbench list ecs -r cn-hangzhou --instance-type ecs.g7.large --instance-name "web-*"

# Output JSON for consumption by scripts or AI agents
workbench list ecs -r cn-hangzhou --output json

Parâmetros:

Parâmetro

Obrigatório

Descrição

-r / --region

Sim

id da região da Alibaba cloud.

--status

Não

Filtra por status. Valores válidos: Running, Stopped, Starting e Stopping.

--tag

Não

Filtra por tag no formato key=value (ou apenas por key). É possível especificar este parâmetro várias vezes; múltiplas tags usam semântica E (AND).

--instance-type

Não

Filtra por tipo de instância, por exemplo, ecs.g7.large.

--instance-name

Não

Filtra pelo nome da instância. O caractere curinga * é suportado.

--image-id

Não

Filtra pelo id da imagem.

--vpc-id

Não

Filtra pelo id da VPC.

--zone-id

Não

Filtra pelo id da zona.

--vswitch-id

Não

Filtra pelo id do vSwitch.

--private-ip

Não

Filtra por endereços IP privados. Separe múltiplos endereços com vírgulas.

--limit

Não

Número máximo de instâncias retornadas por página. Valores válidos: 1 a 100. Padrão: 50.

--next-token

Não

Token de paginação obtido na resposta anterior, usado para recuperar a próxima página.

A estrutura de retorno de --output json é a seguinte:

{
  "instances": [
    {
      "instance_id": "i-bp1xxxxx",
      "instance_name": "web-prod-01",
      "instance_type": "ecs.g7.large",
      "region_id": "cn-hangzhou",
      "status": "Running",
      "private_ip": "172.16.0.10",
      "public_ip": "",
      "os_type": "linux",
      "image_id": "aliyun_3_x64_20G_alibase_20230727.vhd",
      "tags": {"env": "prod"}
    }
  ]
}

Conexão interativa (workbench connect)

O comando workbench connect abre uma sessão PTY interativa e constitui o comando principal do Workbench CLI. Exemplos comuns:

# Default no authentication (Workbench passwordless logon)
workbench connect -i i-bp1a2b3c4d5e6f

# Password authentication (enter the password interactively; input is not echoed)
workbench connect -i i-bp1a2b3c4d5e6f --auth-type password

# Certificate authentication (enter the key file path interactively, such as ~/.ssh/id_rsa)
workbench connect -i i-bp1a2b3c4d5e6f --auth-type certificate

# Specify the logon user and port
workbench connect -i i-bp1a2b3c4d5e6f -u admin -p 2222

# Force a new session (do not reuse an existing session)
workbench connect -i i-bp1a2b3c4d5e6f --new

Parâmetros:

Parâmetro

Obrigatório

Valor padrão

Descrição

-i / --instance-id

Sim*

—

id da instância ECS.

-r / --region

Não

Inferido automaticamente

id da região da Alibaba cloud. Geralmente não é necessário especificá-lo.

-u / --user-name

Não

root

Nome de usuário para login remoto.

--auth-type

Não

none

Método de autenticação. Valores válidos: none, password e certificate.

-p / --port

Não

22

Porta ssh remota.

--new

Não

false

Força a criação de uma nova sessão, sem reutilizar uma sessão existente.

--session-id

Sim*

—

Conecta diretamente a um id de sessão específico (uso avançado).

Nota

* Especifique -i ou --session-id. Se ambos forem fornecidos, --session-id terá precedência.

Métodos de autenticação

Método de autenticação

Comportamento

Cenário

none (padrão)

Estabelece a sessão diretamente pelo canal de login sem senha do Workbench, sem necessidade de configurar previamente senhas ou chaves na instância.

Operações diárias de O&M sem a sobrecarga de gerenciamento de chaves ssh.

password

Solicita a senha interativamente após a conexão. A entrada não é exibida na tela.

Casos em que a instância tem login por senha habilitado e requer autenticação ssh via senha.

certificate

Solicita interativamente o caminho do arquivo de chave após a conexão (como ~/.ssh/id_rsa). A CLI lê automaticamente o conteúdo do arquivo e conclui a autenticação.

Situações em que a equipe exige login baseado em chaves e a auditoria precisa rastrear a impressão digital da chave.

Comandos interativos e teclas de atalho

Em uma sessão workbench connect, pressione Tab no início de uma linha para abrir o painel de comandos com barra:

Comando

Função

/agent

Entra no modo de conversa com o agente de IA na sessão (veja a próxima seção).

/upload

Envia um arquivo local para a instância (abre um seletor de arquivos interativo).

/download

Baixa um arquivo da instância para o computador local (abre um seletor de arquivos interativo).

/detach

Desanexa a sessão (ela permanece ativa em segundo plano e pode ser reconectada posteriormente executando workbench connect -i <instance ID>).

/exit

Sai e encerra a sessão.

/clear

Limpa a tela.

/help

Exibe informações de ajuda.

Teclas de atalho comuns:

Tecla

Função

Tab (no início da linha)

Abre o painel de comandos com barra.

Ctrl+A

Entra ou sai do modo de agente de IA.

Ctrl+D

Encerra a sessão (equivalente a /exit).

Ctrl+C

Interrompe o comando remoto atual sem desconectar a sessão.

Uso do assistente de agente de IA na sessão

Durante uma sessão workbench connect, você pode invocar diretamente o assistente de agente de IA integrado para realizar operações na instância atual usando linguagem natural. Existem três formas de ativá-lo:

  • Digite /agent no início de uma linha e pressione Enter.

  • Pressione a tecla de atalho Ctrl+A.

  • Pressione Tab para abrir o painel de comandos com barra e selecione /agent.

Ao entrar no modo de agente, o prompt de comando muda para um prompt dedicado a esse modo. Digite sua solicitação em linguagem natural logo após o prompt, e o agente retornará as respostas em fluxo. Comandos com barra disponíveis no modo de agente:

Comando

Função

/shell

Sai do modo de agente e retorna ao shell comum (Ctrl+A também encerra o modo).

/new

Inicia uma nova conversa com o agente e limpa o contexto.

/clear

Limpa a tela.

/upload / /download

Aciona o envio ou download de arquivos diretamente no modo de agente.

/help

Exibe a ajuda.

/exit

Sai e encerra a sessão.

Exemplo típico de conversa:

Agent> Show the processes with the highest CPU usage
  ┌─ Running command ──────────
  │ ps aux --sort=-%cpu | head -10
  └────────────────────────
  Waiting for confirmation (Y/n): y
  [Executed]
  ... (the agent continues its analysis and provides conclusions)
Importante

Confirmação humana no loop (HITL): Antes de executar qualquer comando na instância, o agente exibe o comando a ser executado e aguarda sua confirmação com Y/n. Operações de api da cloud (como criar um snapshot) também exigem confirmação. Este é um mecanismo essencial para evitar ações não intencionais pela IA. Não o desative.

O agente mantém o contexto da conversa na mesma sessão. Use /new para reiniciá-lo. As respostas são transmitidas em fluxo, e você pode pressionar Ctrl+C para interromper a geração atual.

Nota

Esta seção descreve como invocar diretamente o assistente de IA integrado em uma sessão connect. Se desejar que um agente em uma ferramenta externa de programação com IA (Wukong ou opencode) chame comandos do workbench, consulte Operate ECS instances by using Workbench CLI in AI agents.

Execução remota de comandos (workbench exec)

O comando workbench exec executa um único comando na instância e retorna o resultado. Diferentemente do shell persistente do connect, cada chamada de exec roda em um ambiente independente. Múltiplas chamadas para a mesma instância reutilizam o canal de conexão subjacente, eliminando a necessidade de configurar a conexão repetidamente. Exemplos comuns:

# Run a command
workbench exec -i i-bp1a2b3c4d5e6f -c "df -h"

# Combine commands: cd + environment variable + run
workbench exec -i i-bp1a2b3c4d5e6f -c "cd /opt/app && ./deploy.sh"

# Set a timeout
workbench exec -i i-bp1a2b3c4d5e6f -c "sleep 30" --timeout 10

# JSON output for consumption by scripts or AI agents
workbench exec -i i-bp1a2b3c4d5e6f -c "df -h" --output json

Parâmetros:

Parâmetro

Obrigatório

Valor padrão

Descrição

-i / --instance-id

Sim

—

id da instância ECS.

-c / --command

Sim

—

Comando a ser executado.

--timeout

Não

30

Tempo limite em segundos.

Importante

Cada chamada exec roda em um ambiente de shell independente e não herda o diretório atual, variáveis de ambiente ou estado do shell da chamada anterior. Se precisar de continuidade de contexto (por exemplo, executar cd e depois outro comando), combine os comandos com && ou ; no mesmo parâmetro -c.

A estrutura de retorno de --output json é a seguinte:

{
  "output": "Filesystem ...\n",
  "stderr": "",
  "exit_code": 0
}

Nesta estrutura, output representa a saída padrão do comando, stderr é o erro padrão e exit_code corresponde ao código de saída do comando remoto (um número inteiro).

Transferência de arquivos (workbench upload / download)

Quando não houver um endereço IP público ou canal SCP disponível, use workbench upload / workbench download para transferir arquivos. O processo de upload exibe uma barra de progresso em tempo real.

Exemplo de upload:

workbench upload ./app.jar /opt/app/app.jar -i i-bp1a2b3c4d5e6f

Exemplo de download:

# Download to the current directory
workbench download /var/log/app.log ./ -i i-bp1a2b3c4d5e6f

# Download and rename
workbench download /var/log/app.log ./local-copy.log -i i-bp1a2b3c4d5e6f

Parâmetros:

Parâmetro

Obrigatório

Valor padrão

Descrição

-i / --instance-id

Sim

—

id da instância ECS.

Nota

Os arquivos são transferidos por meio de retransmissão via oss, um processo totalmente transparente que não exige permissões de oss nem configuração de bucket. A instância deve conseguir acessar o endpoint interno do oss da região correspondente (oss-<region>-internal.aliyuncs.com).

Gerenciamento de sessões (workbench session)

Nota

As sessões são normalmente criadas, reutilizadas e limpas automaticamente pela CLI, sem necessidade de intervenção no uso diário. Os comandos desta seção destinam-se a diagnósticos e limpeza manual.

Comandos comuns:

# View all active sessions
workbench session list
workbench session list --output json

# Close a specified session
workbench session close <session-id>

# Close all sessions
workbench session close --all

Transições de estado da sessão:

  • OPEN: A sessão está estabelecida e permite leitura e escrita normais.

  • RECONNECTING: A conexão WebSocket subjacente foi perdida e está sendo restabelecida.

  • BROKEN: A reconexão falhou e a sessão está indisponível.

  • CLOSED: A sessão foi encerrada (pelo usuário, por tempo limite ou por atingir o limite TTL).

Múltiplas operações de connect, exec, upload e download na mesma instância compartilham a mesma sessão. O daemon gerencia isso de forma transparente; portanto, não é necessário preocupar-se com o id da sessão. Apenas um terminal (TTY) pode se anexar à mesma sessão por vez. Se já houver um terminal conectado, use --new para criar uma nova sessão ou feche a conexão existente primeiro.

Gerenciamento do daemon (workbench daemon)

O Workbench CLI depende de um daemon em segundo plano no espaço do usuário para manter a conexão WebSocket e multiplexar as sessões. O ciclo de vida do daemon é totalmente automático e geralmente não requer gerenciamento manual.

# View the daemon status
workbench daemon status

# Stop the daemon (closes all sessions)
workbench daemon stop
  • Inicialização automática: O daemon inicia automaticamente na primeira vez que você executa qualquer comando workbench.

  • Encerramento automático: O daemon encerra automaticamente 60 segundos após o fechamento da última sessão.

  • Instância única: Apenas uma instância do daemon é permitida por usuário do sistema operacional (garantida por um bloqueio de arquivo PID).

  • Canal IPC: A CLI e o daemon se comunicam por meio de ~/.workbench/run/daemon.sock (um socket Unix), usando o protocolo json-RPC.

Cenários típicos

Cenário 1: Implantação de aplicativos

Envie o pacote de implantação → execute o script de implantação remotamente → verifique a integridade do service na instância.

workbench upload ./app-2.0.tar.gz /opt/deploy/ -i i-bp1a2b3c4d5e6f
workbench exec -i i-bp1a2b3c4d5e6f -c "cd /opt/deploy && tar xzf app-2.0.tar.gz && ./deploy.sh"
workbench exec -i i-bp1a2b3c4d5e6f -c "curl -s http://localhost:8080/health"

Cenário 2: Execução em lote de comandos de diagnóstico

Use exec --output json para obter resultados estruturados, permitindo análise posterior por scripts ou filtragem com jq.

workbench exec -i i-bp1a2b3c4d5e6f -c "df -h && free -m" --output json | jq '.output'
workbench exec -i i-bp1a2b3c4d5e6f -c "systemctl status nginx" --output json | jq '.exit_code'

Cenário 3: Reconexão a uma sessão após desanexar

Para tarefas de longa duração (como monitoramento contínuo de logs ou compilação), execute /detach e feche o terminal local. Ao executar connect novamente mais tarde, você será reconectado automaticamente à sessão original.

workbench connect -i i-bp1a2b3c4d5e6f
# Run tail -f or a long-running task in the session
# Then enter /detach to detach

# Reattach to the original session later
workbench connect -i i-bp1a2b3c4d5e6f

Códigos de saída

O comando workbench exec propaga o código de saída do comando remoto: qualquer que seja o código retornado pelo comando remoto, a CLI encerrará com o mesmo código (comportamento consistente com ssh). Assim, um script pode determinar se o comando remoto foi bem-sucedido diretamente pelo código de saída do workbench exec.

Por exemplo, o comando abaixo executa exit 42 na instância, e a CLI também encerra com 42:

workbench exec -i i-bp1a2b3c4d5e6f -c "exit 42"
echo $?   # Outputs 42

Quando um comando falha devido a problemas como parâmetros incorretos, autenticação, rede ou instância inexistente, o uso de --output json gera os detalhes do erro no seguinte formato:

{
  "code": 1,
  "message": "session resolve: login instance: ... InvalidParameter.InstanceId ..."
}

Nesta estrutura, code é um identificador de erro diferente de zero, e message contém uma descrição legível do erro (que geralmente inclui o código de erro e o RequestId da api subjacente), permitindo localizar o problema.

Solução de problemas

Sintomas comuns e a primeira ação recomendada:

Sintoma / mensagem de erro

Primeira ação

Falha na autenticação / InvalidAccessKeyId.NotFound (o AccessKey não existe) ou IncompleteSignature (o segredo do AccessKey não corresponde)

Verifique se o AccessKey id e o segredo do AccessKey em ~/.workbench/config.json formam um par correspondente e estão completos, sem espaços extras, ou execute workbench config novamente.

Erro indicando que a instância não existe / InvalidParameter.InstanceId

Confirme se o id da instância e a região estão corretos. Execute workbench list ecs -r <region> para consultar e validar.

Falha no login sem senha / IncorrectStatus.CloudAssistantNotRunning (o agente do Cloud Assistant não está em execução)

Por padrão, o login sem senha (quando --auth-type não é especificado, assume-se none) depende do agente do Cloud Assistant em execução na instância; este erro ocorre quando o agente está em estado anormal. Certifique-se de que o agente do Cloud Assistant esteja instalado e funcionando normalmente na instância de destino; se estiver anormal, reinicie-o ou reinstale-o no console ECS. Consulte Install the Cloud Assistant agent. Alternativamente, use --auth-type password ou certificate para autenticação ssh.

profile not found

Verifique se o nome do perfil está correto. Execute workbench config list para visualizar os perfis configurados.

Tempo limite de conexão / erro de WebSocket

Verifique se o seu computador consegue acessar *.aliyuncs.com. Confirme se o grupo de segurança da instância permite o canal do Workbench (de 100.104.0.0/16 para TCP 22).

Conexão ocupada (a sessão já está anexada a outro terminal)

Use --new para criar uma nova sessão ou feche a conexão existente primeiro.

Impossível conectar ao daemon

Execute workbench daemon status. Se estiver parado, qualquer comando acionará uma reinicialização automática.

Erro de permissão no arquivo de configuração

Execute chmod 600 ~/.workbench/config.json. A CLI rejeita arquivos de configuração com permissões excessivamente abertas.

Token STS expirado

No modo RamRoleArn, a CLI faz a atualização automaticamente. Se estiver usando um token STS estático, atualize o token.

Comandos de depuração:

# View the daemon status
workbench daemon status

# JSON error output for easy parsing by scripts
workbench exec -i i-bp1a2b3c4d5e6f -c "echo test" --output json

Os logs do daemon são salvos em ~/.workbench/log/daemon.log.

Referências