Verifique os resultados da execução de comandos do Cloud Assistant, diagnostique falhas por código de erro e resolva problemas comuns.
Contexto
Comandos podem falhar por diversos motivos, como dependências ausentes, problemas de rede, erros de sintaxe, falhas de depuração ou estado anormal da instância. Consulte os detalhes do erro nos resultados de execução no console ou pela API.
Visualizar resultados de execução
Console
Acesse o ECS console - Cloud Assistant.
No canto superior esquerdo da página, selecione uma região e um grupo de recursos.
-
Clique em na aba Command execution result.
-
Se a execução do comando for bem-sucedida:
Localize o resultado com Execution Status igual a Successful.
Na coluna Actions, clique em View.
-
Na aba Task Completed da página Instances, visualize a saída do comando.
Na tabela de resultados de execução, a coluna Execution Status exibe Success e o ExitCode é
0. A área abaixo mostra a saída JSON retornada pelo comando.
-
Se a execução do comando falhar:
Localize o resultado com Execution Status igual a Task Failed.
Na coluna Actions, clique em View.
-
Na aba Task Failed da página Instances, visualize as informações de erro.
Para erros comuns e soluções, consulte Common execution errors and solutions.
No exemplo, o ExitCode é
5e a descrição do erro é The command execution ended with a non-zero exit code. Informações importantes na saída do comando:Not ECS : False(indica que a instância é uma instância ECS). Outras saídas incluemVersion : 3.5.12,Region ID: cn-hangzhoueCPU Type : amd64.
-
Para um comando agendado:
Localize o resultado com Execution Status igual a Scheduled.
Na coluna Actions, clique em View.
Na página Instances, visualize os detalhes da execução agendada.
-
CLI
Para usar a CLI, consulte Use Alibaba Cloud CLI to manage Alibaba Cloud resources.
Obtenha o InvokeId da resposta de RunCommand ou InvokeCommand.
-
Consulte os resultados por InvokeId e RegionId. O exemplo a seguir usa China (Shanghai). Para outros IDs de região, consulte Regions and zones.
-
Visualize o status de execução com
DescribeInvocations:aliyun ecs DescribeInvocations --RegionId cn-shanghai --InvokeId t-sh054h***** -
Visualize os resultados de execução com
DescribeInvocationResults:aliyun ecs DescribeInvocationResults --RegionId cn-shanghai --InvokeId t-sh054h******
-
API
Obtenha o InvokeId da resposta de RunCommand ou InvokeCommand.
Chame DescribeInvocations ou DescribeInvocationResults com o InvokeId e o region ID.
Solução de problemas
Erros comuns
|
Código de erro |
Mensagem de erro |
Recomendação |
|
InstanceNotRunning |
A instância não estava em execução quando o comando foi emitido. |
Certifique-se de que a instância esteja no estado Running. |
|
InstanceRestarted |
A instância reiniciou durante a execução do comando. |
Evite reiniciar a instância durante a execução do comando. |
|
ClientNotRunning |
O Cloud Assistant Agent não está em execução. |
O Cloud Assistant Agent está parado ou não instalado. Inicie-o ou instale-o:
Nota
Se o Cloud Assistant Agent ainda falhar ao iniciar, consulte Install the Cloud Assistant Agent para reinstalá-lo. |
|
ClientNetworkBlocked |
A instância apresenta problemas de conectividade de rede. |
Nota
|
|
SecurityGroupRuleDenied |
Uma regra de grupo de segurança nega acesso ao service Cloud Assistant. |
|
|
ClientNotResponse |
O Cloud Assistant Agent não respondeu. |
Verifique os logs do Cloud Assistant Agent:
|
|
ClientNeedUpgrade |
É necessário atualizar o Cloud Assistant Agent para oferecer suporte ao recurso especificado. |
|
|
ClientNotOnline |
O Cloud Assistant Agent não está conectado ao servidor do Cloud Assistant. |
Reinicie o Cloud Assistant Agent. Consulte Stop and uninstall the Cloud Assistant Agent. |
|
DeliveryTimeout |
O servidor do Cloud Assistant falhou ao enviar o comando para o Cloud Assistant Agent. |
Execute o comando novamente. |
|
ExecutionTimeout |
A execução do comando atingiu o tempo limite. |
Aumente o tempo limite do comando conforme necessário.
|
|
ExecutionException |
Ocorreu uma exceção durante a execução do comando. |
Verifique o campo ErrorInfo para obter detalhes. |
|
ExitCodeNonzero |
O comando terminou com um código de saída diferente de zero. |
Verifique o script do comando e a saída. |
|
ClientRestarted |
O comando foi interrompido porque o Cloud Assistant Agent reiniciou. |
Execute o comando novamente após a reinicialização do agente. Verifique o status do agente no console do Cloud Assistant ou chamando DescribeCloudAssistantStatus. |
|
InstanceReleased |
A instância foi liberada durante a execução do comando. |
O comando falhou porque a instância de destino foi liberada. |
|
DirectoryNotExists |
O diretório de trabalho especificado não existe na instância. |
Crie o diretório de trabalho na instância e execute o comando novamente. |
Executar comandos
|
Código de erro |
Mensagem de erro |
Solução |
|
ClientIsUpgrading |
O Cloud Assistant Agent está em atualização. |
Execute o comando novamente após a conclusão da atualização. Verifique o status do agente no console do Cloud Assistant ou chamando DescribeCloudAssistantStatus. |
|
InstanceDeregistered |
A instância gerenciada foi desregistrada. |
O comando falhou porque a instância gerenciada foi desregistrada. |
|
InvalidSystemBuiltInParameter |
O parâmetro de ambiente integrado é inválido. |
O parâmetro de ambiente integrado não tem suporte. Para parâmetros compatíveis, consulte o parâmetro |
|
DefaultWorkingDirectoryNotAvailable |
O diretório de trabalho padrão na instância não está disponível. |
Verifique o diretório de trabalho padrão:
Você também pode especificar um diretório de trabalho no console ou pelo parâmetro |
|
CommandNotApplicable |
O tipo de comando não se aplica à instância especificada. |
Cada tipo de comando oferece suporte aos seguintes sistemas operacionais:
|
|
InvalidCommandText |
O conteúdo do comando é inválido. |
Verifique o conteúdo do comando. Ele pode estar em texto simples ou codificado em Base64. |
|
CommandContentDecodeError |
Falha ao decodificar o conteúdo do comando. |
Se estiver codificado em Base64, verifique se a codificação está correta. |
|
AccountNotExists |
O usuário especificado não existe na instância. |
Crie o usuário na instância antes de executar o comando.
Você também pode executar um comando como outro usuário pelo console ou pelo parâmetro |
Executar comandos agendados
|
Código de erro |
Mensagem de erro |
Solução |
|
BadCronExpression |
A expressão cron é inválida. |
Corrija a expressão cron. Consulte Clock-based scheduling. |
|
CronExpressionExpired |
A expressão cron expirou. A tarefa agendada não será executada. |
Especifique uma expressão cron não expirada. |
|
InvalidGMTOffsetForTimezone |
A expressão cron contém um formato de fuso horário de deslocamento GMT inválido. |
Verifique o formato do fuso horário de deslocamento GMT. Intervalo com suporte: GMT-12:59 a GMT+14:59. Minutos: 0-59. Zeros à esquerda não têm suporte para a hora. |
|
InvalidGMTOffsetHourForTimezone |
A hora de deslocamento GMT na expressão cron é inválida. |
Verifique o valor da hora do fuso horário de deslocamento GMT. Intervalo com suporte: GMT-12:59 a GMT+14:59. Zeros à esquerda não têm suporte para a hora. |
|
InvalidGMTOffsetMinuteForTimezone |
O minuto de deslocamento GMT na expressão cron é inválido. |
Verifique o valor do minuto do fuso horário de deslocamento GMT. Valores válidos: 0 a 59. |
|
TimezoneInformationCorrupt |
O Cloud Assistant Agent não consegue analisar as informações de fuso horário porque o arquivo de fuso horário está corrompido. |
Nota
Se o arquivo de fuso horário não existir, crie-o antes de executar o comando. |
|
InvalidRateExpression |
A expressão de taxa é inválida. |
Corrija a expressão de taxa. Consulte Fixed-interval execution. |
|
RateFrequencyTooLarge |
A frequência de execução agendada é muito alta. |
A frequência de execução não pode exceder 7 dias. |
|
InvalidAtExpression |
O carimbo de data/hora (expressão at) é inválido. |
Corrija o carimbo de data/hora. Consulte Run a command only once at a specified time. |
|
AtExpressionExpired |
O carimbo de data/hora (expressão at) expirou. A tarefa agendada não será executada. |
Especifique um carimbo de data/hora não expirado. |
Executar comandos em um container
|
Código de erro |
Mensagem de erro |
Solução |
|
InvalidContainerName |
O nome do container é inválido. |
O nome deve começar com uma letra ou dígito, conter apenas letras, dígitos, pontos (.), sublinhados (_) e hífens (-), e ter no máximo 255 caracteres. |
|
UnsupportedContainerRuntime |
O runtime do container especificado no ID do container não tem suporte. |
Apenas containers gerenciados pelo Kubernetes pela especificação CRI nos runtimes docker, containerd ou cri-o têm suporte. |
|
InvalidContainerId |
O ID do container é inválido. |
Um ID de container deve ser uma string hexadecimal de 64 bits. Opcionalmente, adicione um prefixo ( |
|
ContainerConnectFailed |
Não é possível conectar ao container. |
Verifique se o container está em execução. Use
|
|
ContainerStateAbnormal |
O status do container é anormal. |
Certifique-se de que o container esteja em execução. O Cloud Assistant executa comandos apenas em containers em execução. Use |
|
ContainerNotFound |
O container não existe. |
Verifique se o container existe por nome ou ID. Método 1: Usar kubectl
Método 2: Usar o Cloud Assistant Agent
Consulte Use Cloud Assistant to run commands in a container. |
|
ContainerNameDuplicated |
Não é possível identificar o container de destino porque vários containers no nó compartilham o mesmo nome. |
|
|
ContainerNameAndIdNotMatch |
O ID do container e o nome do container especificados não correspondem. |
Verifique se o ID e o nome do container referem-se ao mesmo container. |
Executar comandos como um usuário não padrão no Windows
Os seguintes problemas podem ocorrer ao executar comandos em uma instância Windows como um usuário não padrão.
|
Código de erro |
Mensagem de erro |
Solução |
|
UserOrPasswordInvalid |
O nome de usuário ou senha está incorreto. |
O nome de usuário ou senha está incorreto. Consulte Encrypted parameters e Set a regular user to run Cloud Assistant commands. |
|
QueryParameterStoreFailed |
Falha ao recuperar parâmetros do repositório de parâmetros. |
Verifique se a senha existe no repositório de parâmetros do CloudOps Orchestration Service. Consulte Encrypted parameters. Verifique se a função RAM da instância tem as permissões necessárias. Consulte Configure a RAM role for a Windows instance. |
|
InstanceRoleInvalid |
Uma função RAM não está anexada à instância. |
Chame DescribeInstanceRamRole para verificar se uma função RAM está anexada à instância. |
Parar comando
|
Código de erro |
Mensagem de erro |
Solução |
|
TerminationException |
Falha ao parar a tarefa. |
Verifique o campo ErrorInfo ou tente executar o comando novamente. |
Enviar arquivos
|
Código de erro |
Mensagem de erro |
Solução |
|
FileAlreadyExists |
Já existe um arquivo com o mesmo nome no caminho de destino. |
Resolva isso por um dos seguintes métodos:
3. Altere o caminho de destino ou o nome do arquivo na instância de destino. |
|
FileNameInvalid |
O nome do arquivo é inválido. |
Certifique-se de que o nome do arquivo siga as convenções de nomenclatura do Windows ou Linux.
|
|
FilePathInvalid |
O caminho do arquivo é inválido. |
Certifique-se de que o caminho do arquivo siga as convenções de caminho do Windows ou Linux.
|
|
FileAuthorityInvalid |
As permissões do arquivo são inválidas. |
Ajuste as permissões do arquivo. Isso se aplica apenas a instâncias Linux e usa o mesmo formato que chmod. |
|
UserGroupNotExists |
O grupo de usuários especificado não existe na instância. |
Grupo padrão: root. Crie o grupo de usuários na instância Linux. Comando de exemplo: |
Perguntas frequentes
P: Quando uso o Cloud Assistant para executar um script powershell em um servidor Windows, por que a saída exibe caracteres ilegíveis e como posso corrigir isso?
R: O ambiente powershell usado pelo Cloud Assistant não usa UTF-8 como codificação de saída padrão.
Caracteres não ASCII (como chinês) aparecem como texto ilegível porque o console não consegue analisá-los corretamente.
Duas soluções:
-
Modifique o script: Adicione a codificação UTF-8 no início do script.
No Windows Server 2022, o Cloud Assistant lida com a codificação de caracteres chineses corretamente por padrão. Nenhuma configuração manual de UTF-8 é necessária.
Adicione ao início do seu script powershell:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 Write-Output "Testing Chinese output..." -
Modifique o Launcher: Nas opções avançadas do Cloud Assistant, defina a codificação antes da execução.
Nas opções avançadas, insira no campo Launcher:
powershell -command [Console]::OutputEncoding=[System.Text.Encoding]::UTF8;{{ACS::ScriptFileName|Ext(.ps1)}};exit $LastExitCodeIsso aplica a codificação UTF-8 a todos os scripts powershell nesta tarefa. Nenhuma alteração individual nos scripts é necessária.