Execute scripts Shell ou PowerShell em várias instâncias ECS sem fazer login.
Os comandos são executados com as permissões do usuário especificado. Use um usuário não root, seguindo o princípio do menor privilégio, para minimizar riscos de segurança.
Pré-requisitos
Certifique-se de que:
O Cloud Assistant Agent esteja instalado nas instâncias de destino.
As instâncias de destino estejam no estado Running e com conectividade de rede.
O usuário executor tenha permissões de leitura, gravação e execução nos arquivos e diretórios relevantes.
Procedimento
Console
Acesse o console do ECS - ECS Cloud Assistant.
Na barra de navegação superior, selecione a região e o grupo de recursos.

No canto superior direito da página ECS Cloud Assistant, clique em Create/Run Command.
-
Na seção Command Information, configure os seguintes itens:
-
Command content: Cole ou digite seu script.
Para usar valores dinâmicos, ative Use Parameters e adicione parâmetros no formato
{{parameter}}:Custom Parameters: Definidos no formato
{{parameter}}. Atribua valores manualmente ao executar o comando.Built-in parameters: Fornecidos pelo Cloud Assistant e substituídos em tempo de execução — por exemplo,
{{ACS::RegionId}}(ID da região) e{{ACS::InstanceId}}(ID da instância).
#!/bin/bash # {{name}} is a custom parameter — assign a value when running. echo {{name}} # {{ACS::RegionId}} is a built-in parameter — no value needed. echo {{ACS::RegionId}}Note: Limite de payload de comando codificado em Base64: 18 KB para Run And Save , 24 KB para Run .
-
Execution Plan: Escolha quando executar o comando.
(Padrão) Imediatamente.
Perform Only Dry Run: Valida os parâmetros da solicitação, o ambiente da instância e o status do Cloud Assistant Agent sem executar o comando.
-
Run on Schedule:
Run at Fixed Interval: Executa em um intervalo fixo definido por uma expressão de taxa. Deve estar entre 60 segundos e 7 dias e ser maior que o tempo limite do comando.
Run on Clock-based Schedule: Usa uma expressão cron para agendamento flexível.
Username: O padrão é
root(Linux) ouSystem(Windows).Execution Path: Diretório de trabalho do script. O padrão é
/root(Linux) ouC:\Windows\system32(Windows). Para alterar o diretório, adicione um comandocdno início do script.Timeout: O padrão é 60 segundos. Intervalo válido: 10–86.400 segundos (24 horas).
-
Task Stop Scope: Define o que é interrompido ao encerrar uma tarefa.
Command Process: Interrompe apenas o processo do script.
Command Process Tree: Interrompe o processo do script e todos os processos filhos.
-
-
Na seção Select Instance ou Select Managed Instances, selecione as instâncias de destino.
Selecione até 100 instâncias por execução. Se uma instância esperada não aparecer, verifique se o Cloud Assistant Agent está instalado e se a instância está no estado Running .
Clique em Run and Save ou Run para iniciar.
-
Etapa 1: Codifique seu script
O
RunCommandaceitaCommandContentcomo texto simples ou conteúdo codificado em Base64. Para usar codificação Base64, definaContentEncodingcomoBase64e codifique seu script primeiro:Linux / macOS
# Use -n to avoid encoding the trailing newline echo -n "hello world" | base64 # Output: aGVsbG8gd29ybGQ=Windows (PowerShell)
[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("hello world")) # Output: aGVsbG8gd29ybGQ= -
Etapa 2: Execute o comando
Executar em uma única instância
# The Base64-encoded value of "yum -y update" is "eXVtIC15IHVwZGF0ZQ==" aliyun ecs RunCommand --RegionId 'cn-hangzhou' \ --Type 'RunShellScript' \ --ContentEncoding 'Base64' \ --CommandContent 'eXVtIC15IHVwZGF0ZQ==' \ --InstanceId.1 'i-bp1************de01'Executar em várias instâncias
Especifique várias instâncias com
--InstanceId.N:aliyun ecs RunCommand --RegionId 'cn-hangzhou' \ --Type 'RunShellScript' \ --ContentEncoding 'Base64' \ --CommandContent 'eXVtIC15IHVwZGF0ZQ==' \ --InstanceId.1 'i-bp1************de01' \ --InstanceId.2 'i-bp1************de02' \ --InstanceId.3 'i-bp1************de03'Executar conforme agendamento (cron)
# Run at 12:00 PM every day in 2024, Asia/Shanghai time zone aliyun ecs RunCommand --RegionId 'cn-hangzhou' \ --Type 'RunShellScript' \ --ContentEncoding 'Base64' \ --CommandContent 'eXVtIC15IHVwZGF0ZQ==' \ --RepeatMode 'Period' \ --Frequency '0 0 12 * * ? 2024 Asia/Shanghai' \ --InstanceId.1 'i-bp1************de01' -
Etapa 3: Verifique os resultados
O
RunCommandretorna umInvokeId. Consulte os resultados da execução com:# Replace <invoke_id> with your InvokeId aliyun ecs DescribeInvocationResults --RegionId 'cn-hangzhou' --InvokeId '<invoke_id>'Consulte DescribeInvocationResults para detalhes dos parâmetros.
Na resposta, verifique:
Output: a saída padrão do script (STDOUT)ErrorInfoeErrorMsg: detalhes do erro
Máximo de instâncias por execução: 100. Para aumentar esse limite, consulte Gerenciar cotas.
Máximo de comandos salvos por região: 500 por padrão. Comandos executados sem salvar não contam para essa cota. Para aumentar esse limite, consulte Gerenciar cotas.
Alguns recursos avançados exigem versões específicas do Cloud Assistant Agent. Consulte Recursos e versões.
Payload de comando codificado em Base64: máximo de 18 KB (Run And Save) ou 24 KB (Run).
Intervalo de tempo limite: 10–86.400 segundos. Agendamentos de intervalo fixo devem ter pelo menos 60 segundos e exceder o tempo limite do comando.
Verifique se o usuário executor tem permissões de leitura, gravação e execução nos arquivos e diretórios relevantes.
Teste o script executando-o manualmente na instância.
Confirme se a instância está no estado Running e com conectividade de rede.
Se o erro for
ClientNeedUpgrade, atualize o Cloud Assistant Agent.Recursos e versões — verifique quais recursos exigem uma versão específica do agente
Gerenciar cotas — aumente a cota de instâncias ou de comandos salvos
Assinar eventos do Cloud Assistant — configure alertas de falha via EventBridge ou CloudMonitor
CLI
Todos os exemplos usam aliyun ecs RunCommand. Para a referência completa de parâmetros, consulte RunCommand.
Limitações
Aplicar em produção
Use idempotência para chamadas de CLI/SDK
Defina ClientToken para garantir idempotência ao chamar RunCommand via CLI ou SDK. Isso evita execuções duplicadas causadas por novas tentativas de rede.
Configure monitoramento e alertas
Assine eventos do Cloud Assistant por meio do EventBridge ou CloudMonitor para receber notificações sobre falhas de comando. A detecção precoce reduz o tempo de resolução.
Perguntas frequentes
Como verifico a versão do Cloud Assistant Agent em uma instância?
Verifique pelo console ou ao fazer login na instância. Consulte Instalar o Cloud Assistant Agent.
Uma tarefa agendada de intervalo fixo é executada imediatamente após a criação?
Não. A primeira execução ocorre após o término do primeiro intervalo. Por exemplo, uma tarefa criada às 10:00 com um intervalo de 10 minutos será executada pela primeira vez às 10:10.
Meu comando falhou. Como soluciono o problema?
Verifique o log de Output na página de resultados da execução — as mensagens de erro geralmente estão lá. Em seguida:
Consulte Verificar resultados de execução e solucionar problemas comuns para obter uma referência completa de solução de problemas.