Consultez les résultats d'exécution des commandes Cloud Assistant, diagnostiquez les échecs à l'aide des codes d'erreur et résolvez les problèmes courants.
Contexte
Les commandes peuvent échouer pour diverses raisons : dépendances manquantes, problèmes réseau, erreurs de syntaxe, échecs de débogage ou état anormal de l'instance. Consultez les détails des erreurs dans les résultats d'exécution depuis la console ou via l'API.
Consulter les résultats d'exécution
Console
Accédez à Console ECS - Cloud Assistant.
Dans le coin supérieur gauche de la page, sélectionnez une région et un groupe de ressources.
-
Cliquez sur l'onglet Command execution result.
-
Si une commande s'est exécutée avec succès :
Recherchez le résultat dont le Execution Status est Successful.
Dans la colonne Actions, cliquez sur View.
-
Sur l'onglet Task Completed de la page Instances, consultez la sortie de la commande.
Dans le tableau des résultats d'exécution, la colonne Execution Status affiche Success et le ExitCode est
0. La zone ci-dessous affiche la sortie JSON renvoyée par la commande.
-
Si une commande a échoué :
Recherchez le résultat dont le Execution Status est Task Failed.
Dans la colonne Actions, cliquez sur View.
-
Sur l'onglet Task Failed de la page Instances, consultez les informations d'erreur.
Pour les erreurs courantes et leurs solutions, reportez-vous à la section Erreurs d'exécution courantes et solutions.
Dans l'exemple, le ExitCode est
5et la description de l'erreur est The command execution ended with a non-zero exit code. Les informations clés dans la sortie de la commande incluent :Not ECS : False(indiquant que l'instance est une instance ECS). D'autres sorties incluentVersion : 3.5.12,Region ID: cn-hangzhouetCPU Type : amd64.
-
Pour une commande planifiée :
Recherchez le résultat dont le Execution Status est Scheduled.
Dans la colonne Actions, cliquez sur View.
Sur la page Instances, consultez les détails de l'exécution planifiée.
-
CLI
Pour l'utilisation de la CLI, reportez-vous à la rubrique Utiliser Alibaba Cloud CLI pour gérer les ressources Alibaba Cloud.
Récupérez l'InvokeId à partir de la réponse de RunCommand ou de InvokeCommand.
-
Interrogez les résultats en utilisant l'InvokeId et le RegionId. L'exemple suivant utilise la région Chine (Shanghai). Pour les autres ID de région, reportez-vous à la rubrique Régions et zones.
-
Consultez l'état d'exécution avec
DescribeInvocations:aliyun ecs DescribeInvocations --RegionId cn-shanghai --InvokeId t-sh054h***** -
Consultez les résultats d'exécution avec
DescribeInvocationResults:aliyun ecs DescribeInvocationResults --RegionId cn-shanghai --InvokeId t-sh054h******
-
API
Récupérez l'InvokeId à partir de la réponse de RunCommand ou de InvokeCommand.
Appelez DescribeInvocations ou DescribeInvocationResults en spécifiant l'InvokeId et l'ID de région.
Dépannage
Erreurs courantes
|
Code d'erreur |
Message d'erreur |
Recommandation |
|
InstanceNotRunning |
L'instance n'était pas en cours d'exécution lors de l'émission de la commande. |
Assurez-vous que l'instance est dans l'état Running. |
|
InstanceRestarted |
L'instance a été redémarrée pendant l'exécution de la commande. |
Évitez de redémarrer l'instance pendant l'exécution de la commande. |
|
ClientNotRunning |
Le Cloud Assistant Agent n'est pas en cours d'exécution. |
Le Cloud Assistant Agent est arrêté ou n'est pas installé. Démarrez-le ou installez-le :
Remarque
Si le Cloud Assistant Agent ne parvient toujours pas à démarrer, consultez la rubrique Installer le Cloud Assistant Agent pour le réinstaller. |
|
ClientNetworkBlocked |
L'instance rencontre des problèmes de connectivité réseau. |
Remarque
|
|
SecurityGroupRuleDenied |
Une règle de groupe de sécurité refuse l'accès au service Cloud Assistant. |
|
|
ClientNotResponse |
Le Cloud Assistant Agent n'a pas répondu. |
Vérifiez les journaux du Cloud Assistant Agent :
|
|
ClientNeedUpgrade |
Le Cloud Assistant Agent doit être mis à niveau pour prendre en charge la fonctionnalité spécifiée. |
|
|
ClientNotOnline |
Le Cloud Assistant Agent n'est pas connecté au serveur Cloud Assistant. |
Redémarrez le Cloud Assistant Agent. Reportez-vous à la rubrique Arrêter et désinstaller le Cloud Assistant Agent. |
|
DeliveryTimeout |
Le serveur Cloud Assistant n'a pas pu envoyer la commande au Cloud Assistant Agent. |
Relancez la commande. |
|
ExecutionTimeout |
L'exécution de la commande a expiré. |
Augmentez le délai d'expiration de la commande si nécessaire.
|
|
ExecutionException |
Une exception s'est produite pendant l'exécution de la commande. |
Vérifiez le champ ErrorInfo pour plus de détails. |
|
ExitCodeNonzero |
La commande s'est terminée avec un code de sortie non nul. |
Vérifiez le script de la commande et sa sortie. |
|
ClientRestarted |
La commande a été interrompue car le Cloud Assistant Agent a été redémarré. |
Relancez la commande après le redémarrage de l'agent. Vérifiez l'état de l'agent dans la console Cloud Assistant ou en appelant DescribeCloudAssistantStatus. |
|
InstanceReleased |
L'instance a été libérée pendant l'exécution de la commande. |
La commande a échoué car l'instance cible a été libérée. |
|
DirectoryNotExists |
Le répertoire de travail spécifié n'existe pas sur l'instance. |
Créez le répertoire de travail sur l'instance, puis relancez la commande. |
Exécuter des commandes
|
Code d'erreur |
Message d'erreur |
Solution |
|
ClientIsUpgrading |
Le Cloud Assistant Agent est en cours de mise à niveau. |
Relancez la commande une fois la mise à niveau terminée. Vérifiez l'état de l'agent dans la console Cloud Assistant ou en appelant DescribeCloudAssistantStatus. |
|
InstanceDeregistered |
L'instance gérée a été désenregistrée. |
La commande a échoué car l'instance gérée a été désenregistrée. |
|
InvalidSystemBuiltInParameter |
Le paramètre d'environnement intégré n'est pas valide. |
Le paramètre d'environnement intégré n'est pas pris en charge. Pour connaître les paramètres pris en charge, reportez-vous au paramètre |
|
DefaultWorkingDirectoryNotAvailable |
Le répertoire de travail par défaut sur l'instance n'est pas disponible. |
Vérifiez le répertoire de travail par défaut :
Vous pouvez également spécifier un répertoire de travail dans la console ou via le paramètre |
|
CommandNotApplicable |
Le type de commande n'est pas applicable à l'instance spécifiée. |
Chaque type de commande prend en charge les systèmes d'exploitation suivants :
|
|
InvalidCommandText |
Le contenu de la commande n'est pas valide. |
Vérifiez le contenu de la commande. Il peut être en texte clair ou encodé en Base64. |
|
CommandContentDecodeError |
Échec du décodage du contenu de la commande. |
Si le contenu est encodé en Base64, vérifiez que l'encodage est correct. |
|
AccountNotExists |
L'utilisateur spécifié n'existe pas sur l'instance. |
Créez l'utilisateur sur l'instance avant d'exécuter la commande.
Vous pouvez également exécuter une commande en tant qu'autre utilisateur via la console ou le paramètre |
Exécuter des commandes planifiées
|
Code d'erreur |
Message d'erreur |
Solution |
|
BadCronExpression |
L'expression cron n'est pas valide. |
Corrigez l'expression cron. Reportez-vous à la section Planification basée sur l'horloge. |
|
CronExpressionExpired |
L'expression cron a expiré. La tâche planifiée ne s'exécutera pas. |
Spécifiez une expression cron qui n'a pas expiré. |
|
InvalidGMTOffsetForTimezone |
L'expression cron contient un format de fuseau horaire avec décalage GMT non valide. |
Vérifiez le format du fuseau horaire avec décalage GMT. Plage prise en charge : GMT-12:59 à GMT+14:59. Minutes : 0-59. Les zéros initiaux ne sont pas pris en charge pour l'heure. |
|
InvalidGMTOffsetHourForTimezone |
L'heure du décalage GMT dans l'expression cron n'est pas valide. |
Vérifiez la valeur de l'heure du fuseau horaire avec décalage GMT. Plage prise en charge : GMT-12:59 à GMT+14:59. Les zéros initiaux ne sont pas pris en charge pour l'heure. |
|
InvalidGMTOffsetMinuteForTimezone |
La minute du décalage GMT dans l'expression cron n'est pas valide. |
Vérifiez la valeur des minutes du fuseau horaire avec décalage GMT. Valeurs valides : 0 à 59. |
|
TimezoneInformationCorrupt |
Le Cloud Assistant Agent ne peut pas analyser les informations de fuseau horaire car le fichier de fuseau horaire est corrompu. |
Remarque
Si le fichier de fuseau horaire n'existe pas, créez-le avant d'exécuter la commande. |
|
InvalidRateExpression |
L'expression de taux n'est pas valide. |
Corrigez l'expression de taux. Reportez-vous à la section Exécution à intervalle fixe. |
|
RateFrequencyTooLarge |
La fréquence d'exécution planifiée est trop élevée. |
La fréquence d'exécution ne peut pas dépasser 7 jours. |
|
InvalidAtExpression |
L'horodatage (expression at) n'est pas valide. |
Corrigez l'horodatage. Reportez-vous à la section Exécuter une commande une seule fois à une heure spécifiée. |
|
AtExpressionExpired |
L'horodatage (expression at) a expiré. La tâche planifiée ne s'exécutera pas. |
Spécifiez un horodatage qui n'a pas expiré. |
Exécuter des commandes dans un conteneur
|
Code d'erreur |
Message d'erreur |
Solution |
|
InvalidContainerName |
Le nom du conteneur n'est pas valide. |
Le nom doit commencer par une lettre ou un chiffre, contenir uniquement des lettres, des chiffres, des points (.), des traits de soulignement (_) et des traits d'union (-), et comporter 255 caractères maximum. |
|
UnsupportedContainerRuntime |
Le runtime de conteneur spécifié dans l'ID du conteneur n'est pas pris en charge. |
Seuls les conteneurs gérés par Kubernetes via la spécification CRI sur les runtimes docker, containerd ou cri-o sont pris en charge. |
|
InvalidContainerId |
L'ID du conteneur n'est pas valide. |
Un ID de conteneur doit être une chaîne hexadécimale de 64 bits. Vous pouvez éventuellement ajouter un préfixe ( |
|
ContainerConnectFailed |
Impossible de se connecter au conteneur. |
Vérifiez si le conteneur est en cours d'exécution. Utilisez
|
|
ContainerStateAbnormal |
L'état du conteneur est anormal. |
Assurez-vous que le conteneur est en cours d'exécution. Cloud Assistant exécute des commandes uniquement dans les conteneurs en cours d'exécution. Utilisez |
|
ContainerNotFound |
Le conteneur n'existe pas. |
Vérifiez que le conteneur existe par son nom ou son ID. Méthode 1 : Utiliser kubectl
Méthode 2 : Utiliser le Cloud Assistant Agent
Reportez-vous à la rubrique Utiliser Cloud Assistant pour exécuter des commandes dans un conteneur. |
|
ContainerNameDuplicated |
Le conteneur cible ne peut pas être identifié car plusieurs conteneurs sur le nœud partagent le même nom. |
|
|
ContainerNameAndIdNotMatch |
L'ID du conteneur et le nom du conteneur spécifiés ne correspondent pas. |
Vérifiez que l'ID et le nom du conteneur font référence au même conteneur. |
Exécuter des commandes en tant qu'utilisateur non par défaut sur Windows
Les problèmes suivants peuvent survenir lors de l'exécution de commandes sur une instance Windows en tant qu'utilisateur non par défaut.
|
Code d'erreur |
Message d'erreur |
Solution |
|
UserOrPasswordInvalid |
Le nom d'utilisateur ou le mot de passe est incorrect. |
Le nom d'utilisateur ou le mot de passe est incorrect. Reportez-vous aux rubriques Paramètres chiffrés et Définir un utilisateur régulier pour exécuter les commandes Cloud Assistant. |
|
QueryParameterStoreFailed |
Échec de la récupération des paramètres depuis le magasin de paramètres. |
Vérifiez que le mot de passe existe dans le magasin de paramètres du CloudOps Orchestration Service. Reportez-vous à la rubrique Paramètres chiffrés. Vérifiez que le rôle RAM de l'instance dispose des autorisations requises. Reportez-vous à la section Configurer un rôle RAM pour une instance Windows. |
|
InstanceRoleInvalid |
Aucun rôle RAM n'est attaché à l'instance. |
Appelez DescribeInstanceRamRole pour vérifier si un rôle RAM est attaché à l'instance. |
Arrêter une commande
|
Code d'erreur |
Message d'erreur |
Solution |
|
TerminationException |
Échec de l'arrêt de la tâche. |
Vérifiez le champ ErrorInfo ou relancez la commande. |
Envoyer des fichiers
|
Code d'erreur |
Message d'erreur |
Solution |
|
FileAlreadyExists |
Un fichier portant le même nom existe déjà dans le chemin de destination. |
Résolvez ce problème en procédant comme suit :
3. Modifiez le chemin de destination ou le nom du fichier sur l'instance cible. |
|
FileNameInvalid |
Le nom du fichier n'est pas valide. |
Assurez-vous que le nom du fichier respecte les conventions de nommage Windows ou Linux.
|
|
FilePathInvalid |
Le chemin du fichier n'est pas valide. |
Assurez-vous que le chemin du fichier respecte les conventions de chemin Windows ou Linux.
|
|
FileAuthorityInvalid |
Les autorisations du fichier ne sont pas valides. |
Ajustez les autorisations du fichier. Cela s'applique uniquement aux instances Linux et utilise le même format que chmod. |
|
UserGroupNotExists |
Le groupe d'utilisateurs spécifié n'existe pas sur l'instance. |
Groupe par défaut : root. Créez le groupe d'utilisateurs sur l'instance Linux. Exemple de commande : |
FAQ
Q : Lorsque j'utilise Cloud Assistant pour exécuter un script PowerShell sur un serveur Windows, pourquoi la sortie affiche-t-elle des caractères illisibles et comment puis-je corriger cela ?
R : L'environnement PowerShell utilisé par Cloud Assistant n'utilise pas par défaut l'encodage de sortie UTF-8.
Les caractères non ASCII (tels que les caractères chinois) s'affichent sous forme de texte illisible car la console ne peut pas les analyser correctement.
Deux solutions sont possibles :
-
Modifier le script : Ajoutez l'encodage UTF-8 au début du script.
Sur Windows Server 2022, Cloud Assistant gère correctement l'encodage des caractères chinois par défaut. Aucun réglage manuel de l'UTF-8 n'est nécessaire.
Ajoutez au début de votre script PowerShell :
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 Write-Output "Testing Chinese output..." -
Modifier le Launcher : Dans les options avancées de Cloud Assistant, définissez l'encodage avant l'exécution.
Dans les options avancées, saisissez dans le champ Launcher :
powershell -command [Console]::OutputEncoding=[System.Text.Encoding]::UTF8;{{ACS::ScriptFileName|Ext(.ps1)}};exit $LastExitCodeCela applique l'encodage UTF-8 à tous les scripts PowerShell de cette tâche. Aucune modification individuelle des scripts n'est nécessaire.