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.come o endpoint WebSocket de backend do Workbench. Os comandosuploadedownloadtambém exigem que a instância possa acessar o endpoint interno do oss da região correspondente.
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 |
|
|
|
Formato de saída. Valores válidos: |
|
|
Inferido automaticamente |
id da região da Alibaba cloud, como |
|
|
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 |
|
|
Sim |
id da região da Alibaba cloud. |
|
|
Não |
Filtra por status. Valores válidos: |
|
|
Não |
Filtra por tag no formato |
|
|
Não |
Filtra por tipo de instância, por exemplo, |
|
|
Não |
Filtra pelo nome da instância. O caractere curinga |
|
|
Não |
Filtra pelo id da imagem. |
|
|
Não |
Filtra pelo id da VPC. |
|
|
Não |
Filtra pelo id da zona. |
|
|
Não |
Filtra pelo id do vSwitch. |
|
|
Não |
Filtra por endereços IP privados. Separe múltiplos endereços com vírgulas. |
|
|
Não |
Número máximo de instâncias retornadas por página. Valores válidos: 1 a 100. Padrão: 50. |
|
|
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 |
|
|
Sim* |
— |
id da instância ECS. |
|
|
Não |
Inferido automaticamente |
id da região da Alibaba cloud. Geralmente não é necessário especificá-lo. |
|
|
Não |
|
Nome de usuário para login remoto. |
|
|
Não |
|
Método de autenticação. Valores válidos: |
|
|
Não |
|
Porta ssh remota. |
|
|
Não |
|
Força a criação de uma nova sessão, sem reutilizar uma sessão existente. |
|
|
Sim* |
— |
Conecta diretamente a um id de sessão específico (uso avançado). |
* 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 |
|
|
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. |
|
|
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. |
|
|
Solicita interativamente o caminho do arquivo de chave após a conexão (como |
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 |
|
|
Entra no modo de conversa com o agente de IA na sessão (veja a próxima seção). |
|
|
Envia um arquivo local para a instância (abre um seletor de arquivos interativo). |
|
|
Baixa um arquivo da instância para o computador local (abre um seletor de arquivos interativo). |
|
|
Desanexa a sessão (ela permanece ativa em segundo plano e pode ser reconectada posteriormente executando |
|
|
Sai e encerra a sessão. |
|
|
Limpa a tela. |
|
|
Exibe informações de ajuda. |
Teclas de atalho comuns:
|
Tecla |
Função |
|
|
Abre o painel de comandos com barra. |
|
|
Entra ou sai do modo de agente de IA. |
|
|
Encerra a sessão (equivalente a |
|
|
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
/agentno início de uma linha e pressione Enter.Pressione a tecla de atalho
Ctrl+A.Pressione
Tabpara 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 |
|
|
Sai do modo de agente e retorna ao shell comum (Ctrl+A também encerra o modo). |
|
|
Inicia uma nova conversa com o agente e limpa o contexto. |
|
|
Limpa a tela. |
|
|
Aciona o envio ou download de arquivos diretamente no modo de agente. |
|
|
Exibe a ajuda. |
|
|
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)
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.
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 |
|
|
Sim |
— |
id da instância ECS. |
|
|
Sim |
— |
Comando a ser executado. |
|
|
Não |
|
Tempo limite em segundos. |
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 |
|
|
Sim |
— |
id da instância ECS. |
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)
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 / |
Verifique se o AccessKey id e o segredo do AccessKey em |
|
Erro indicando que a instância não existe / |
Confirme se o id da instância e a região estão corretos. Execute |
|
Falha no login sem senha / |
Por padrão, o login sem senha (quando |
|
|
Verifique se o nome do perfil está correto. Execute |
|
Tempo limite de conexão / erro de WebSocket |
Verifique se o seu computador consegue acessar |
|
Conexão ocupada (a sessão já está anexada a outro terminal) |
Use |
|
Impossível conectar ao daemon |
Execute |
|
Erro de permissão no arquivo de configuração |
Execute |
|
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
Connect to an instance by using Workbench CLI: tópico pai, que aborda o posicionamento da ferramenta e o início rápido.
Install Workbench CLI and configure credentials: instalação da CLI e configuração de credenciais/permissões.
Operate ECS instances by using Workbench CLI in AI agents: como fazer um agente chamar comandos do workbench no Wukong ou opencode.
Install the Cloud Assistant agent: o Workbench CLI depende do agente do Cloud Assistant.