Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Comprendre les états des commandes
Run Command, une des fonctionnalités de AWS Systems Manager, génère des rapports avec des informations de statut détaillées sur les différents états qu'une commande connaît pendant le traitement et pour chaque nœud géré qui a traité la commande. Vous pouvez surveiller les statuts de commande à l'aide des méthodes suivantes :
-
Cliquez sur l'icône Refresh (Actualiser) dans l'onglet Commands (Commandes) de l'interface de la console Run Command.
-
Appelez list-commands ou list-command-invocations à l'aide de l'AWS Command Line Interface (AWS CLI). Ou appelez Get-SSMCommand ou Get-SSMCommandInvocation à l'aide des AWS Tools for Windows PowerShell.
-
Configurez Amazon EventBridge de sorte à répondre aux changements d'état ou de statut.
-
Configurez Amazon Simple Notification Service (Amazon SNS) de sorte à envoyer des notifications pour tous les changements de statut ou pour des statuts spécifiques, comme
Failed
ouTimedOut
.
État Run Command
La fonctionnalité Run Command génère des rapports avec des détails de statut pour trois domaines : plug-ins, appels et statut de commande général. Un plug-in est un bloc d'exécution de code qui est défini dans le document SSM de votre commande. Pour de plus amples informations sur les plug-ins, consultez Référence de plug-in de document Command.
Lorsque vous envoyez une commande à plusieurs nœuds gérés en même temps, chaque copie de la commande qui cible chaque nœud correspond à une invocation de commande. Par exemple, si vous utilisez le document AWS-RunShellScript
et que vous envoyez une commande ifconfig
à 20 instances Linux, cette commande aura 20 appels. Chaque invocation de commande signale le statut individuellement. Les plug-ins d'une invocation de commande donné communiquent aussi le statut individuellement.
Enfin, la fonctionnalité Run Command inclut un statut de commande regroupé pour tous les plug-ins et les appels. Le statut de commande regroupé peut être différent du statut signalé par plug-ins ou appels, comme indiqué dans les tableaux suivants.
Note
Si vous exécutez des commandes sur un grand nombre de nœuds gérés à l'aide des paramètres max-concurrency
ou max-errors
, le statut de commande reflète les limites imposées par ces paramètres, comme décrit dans les tableaux suivants. Pour obtenir plus d'informations sur ces paramètres, consultez Exécuter des commandes à grande échelle.
Statut détaillé pour des plug-ins et des appels de commande | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
État | Détails | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
En suspens | La commande n'a pas encore été envoyée au nœud géré ou n'a pas été reçue par l'SSM Agent. Si la commande n'est pas reçue par l'agent avant le délai prévu, qui est égal à la somme du paramètre Timeout (seconds) (Délai d'expiration (secondes)) et le paramètre Execution timeout (Délai d'exécution), le statut passe à Delivery Timed Out . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
InProgress | Systems Manager tente d'envoyer la commande au nœud géré, ou la commande a été reçue par l'SSM Agent et a commencé à s'exécuter sur l'instance. Selon le résultat de tous les plug-ins de commande, le statut passe à Success , Failed , Delivery
Timed Out ou Execution Timed Out . Exception : si l'agent n'est pas en cours d'exécution ou n'est pas disponible sur le nœud, le statut de la commande reste sur In
Progress jusqu'à ce que l'agent soit à nouveau disponible ou que la limite du délai d'exécution soit atteinte. Le statut est ensuite remplacé par un état de mise hors service. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Delayed (Retardé) | Le système tente d'envoyer la commande au nœud géré, mais n'a pas réussi. Le système réessaie. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Réussite | La commande a été reçue par SSM Agent sur le nœud géré et a retourné un code de sortie de zéro. Ce statut ne signifie pas que la commande a été effectuée sur le nœud. Il s'agit d'un état final. NotePour résoudre les erreurs ou obtenir plus d'informations sur l'exécution des commandes, envoyez une commande qui gère les erreurs ou les exceptions en retournant les codes de sortie appropriés (codes de sortie autre que zéro pour un échec de la commande). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DeliveryTimedOut | La commande n'a pas été fournie au nœud géré avant l'expiration du délai total. Les dépassements de délai totaux ne sont pas comptabilisés dans la limite max-errors de la commande parent, mais ils permettent de savoir si l'état de la commande parent est Success , Incomplete ou Delivery Timed Out . Il s'agit d'un état final. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ExecutionTimedOut | L'automatisation de la commande a démarré sur le nœud géré, mais l'exécution de la commande ne s'est pas terminée avant l'expiration du délai d'exécution. Les expirations de délais d'exécution sont considérés comme des échecs, ce qui enverra une réponse nulle et Systems Manager quittera sortira de la tentative d'exécution de l'automatisation des commandes et signalera échec comme état. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Échec | La commande n'a pas réussi sur le nœud géré. Pour un plugin, cela signifie que le code de résultat n'était pas zéro. Pour une invocation de commande, cela signifie que le code de résultat pour un ou plusieurs plugins n'était pas zéro. Les échecs d'invocation sont comptabilisés dans la limite max-errors de la commande parent. Il s'agit d'un état final. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Annulée | La commande a été annulée avant de se terminer. Il s'agit d'un état final. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Undeliverable (Non livrable) | La commande ne peut pas être délivrée au nœud géré. Le nœud peut ne pas exister ou ne peut pas répondre. Les appels ne pouvant pas être remis ne sont pas comptabilisés dans la limite max-errors de la commande parent, mais ils permettent de déterminer si le statut de la commande parent est Success ou Incomplete . Par exemple, si tous les appels d'une commande ont le statut Undeliverable , le statut de la commande renvoyé est Failed . Toutefois, si une commande comporte 5 appels, dont 4 renvoient le statut Undeliverable et 1 renvoie le statut Success , le statut de la commande parent est Success . Il s'agit d'un état final. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Terminated (Résilié) | La commande parent atteint sa limite max-errors et les appels de commande suivants ont été annulés par le système. Il s'agit d'un état final. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
InvalidPlatform | La commande a été envoyée à un nœud géré qui ne correspondait pas aux plateformes requises spécifiées par le document choisi. Invalid
Platform ne compte pas dans la limite maximale d'erreurs de la commande parent, mais permet de savoir si le statut de la commande parent est Success (Réussite) ou Failed (Échec). Par exemple, si tous les appels d'une commande ont le statut Invalid Platform , le statut de la commande renvoyé est Failed . Toutefois, si une commande comporte 5 appels, dont 4 renvoient le statut Invalid Platform et 1 renvoie le statut Success , le statut de la commande parent est Success . Il s'agit d'un état final. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AccessDenied | L'utilisateur ou le rôle AWS Identity and Access Management (IAM) qui initie la commande n'a pas accès au nœud géré ciblé. Access Denied n'est pas pris en compte dans la limite max-errors de la commande parent, mais contribue à déterminer si le statut de la commande parent est Success ou Failed . Par exemple, si tous les appels d'une commande ont le statut Access Denied , le statut de la commande renvoyé est Failed . Toutefois, si une commande comporte 5 appels, dont 4 renvoient le statut Access Denied et 1 renvoie le statut Success , le statut de la commande parent est Success . Il s'agit d'un état final. |
Statut détaillé d'une commande | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
État | Détails | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
En suspens | La commande n'a pas encore été reçue par un agent sur un nœud géré. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
InProgress | La commande a été envoyée au moins à un nœud géré, mais n'a pas atteint un état final sur tous les nœuds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Delayed (Retardé) | Le système tente d'envoyer la commande au nœud, mais n'a pas réussi. Le système réessaie. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Réussite | La commande a été reçue par SSM Agent sur l'ensemble des nœuds gérés spécifiés ou ciblés et a retourné un code de sortie de zéro. L'ensemble des invocations de commande a atteint un état de mise hors service, et la valeur de max-errors n'a pas été atteinte. Ce statut ne signifie pas que la commande a été effectuée avec succès sur l'ensemble des nœuds gérés spécifiés ou ciblés. Il s'agit d'un état final. NotePour résoudre les erreurs ou obtenir plus d'informations sur l'exécution des commandes, envoyez une commande qui gère les erreurs ou les exceptions en retournant les codes de sortie appropriés (codes de sortie autre que zéro pour un échec de la commande). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DeliveryTimedOut | La commande n'a pas été fournie au nœud géré avant l'expiration du délai total. La valeur de max-errors ou d'autres appels de commande affichent le statut Delivery Timed
Out . Il s'agit d'un état final. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Échec |
La commande n'a pas réussi sur le nœud géré. La valeur de |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Incomplete (Incomplet) | La commande a été tentée sur tous les nœuds gérés et un ou plusieurs appels n'ont pas la valeur Success . Toutefois, le nombre d'appels en échec n'est pas suffisant pour que le statut soit Failed . Il s'agit d'un état final. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Annulée | La commande a été annulée avant de se terminer. Il s'agit d'un état final. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RateExceeded | Le nombre de nœuds gérés ciblée par la commande a dépassé la quota du compte pour les appels en attente. Le système a annulé la commande avant de l'exécuter sur un nœud. Il s'agit d'un état final. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AccessDenied | L'utilisateur ou le rôle qui initie la commande n'a pas accès au groupe de ressources ciblé. AccessDenied n'est pas pris en compte dans la limite max-errors de la commande parent, mais contribue à déterminer si le statut de la commande parent est Success ou Failed . (Par exemple, si tous les appels d'une commande ont le statut AccessDenied , alors le statut de la commande retourné est Failed . Toutefois, si une commande comporte 5 appels, dont 4 renvoient le statut AccessDenied et 1 renvoie le statut Success , le statut de la commande parent est Success .) Il s'agit d'un état final. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
No Instances In Tag (Aucune instance dans la balise) | La valeur ou le groupe de ressources de la paire de clés de balise ciblés par la commande ne correspondent à aucun nœud géré. Il s'agit d'un état final. |
Présentation des valeurs de délai des commandes
Systems Manager applique les valeurs de délai suivantes lors de l'exécution des commandes.
Total Timeout (Délai total)
Dans la console Systems Manager, vous spécifiez la valeur du délai d'expiration dans le champ Timeout (seconds) (Délai d'expiration (secondes)). Une fois qu'une commande est envoyée, Run Command vérifie si la commande a expiré ou non. Si une commande atteint la limite d'expiration de la commande (délai total), son statut devient DeliveryTimedOut
pour tous les appels ayant le statut InProgress
, Pending
ou Delayed
.
Sur un plan plus technique, le délai d'expiration total (Timeout (seconds) (Délai d'expiration (secondes))) est une combinaison de deux valeurs de délai d'expiration, comme indiqué ici :
Total timeout = "Timeout(seconds)" from the console + "timeoutSeconds": "{{
executionTimeout }}" from your SSM document
Par exemple, la valeur par défaut de Timeout (seconds) (Délai d'expiration (secondes)) dans la console Systems Manager est de 600 secondes. Si vous exécutez une commande en utilisant le document SSM AWS-RunShellScript
, la valeur par défaut de « timeoutSeconds » : « {{executionTimeout}} » est de 3600 secondes, comme indiqué dans l'exemple de document suivant :
"executionTimeout": { "type": "String", "default": "3600", "runtimeConfig": { "aws:runShellScript": { "properties": [ { "timeoutSeconds": "{{ executionTimeout }}"
Cela signifie que la commande s'exécute pendant 4 200 secondes (70 minutes) avant que le système ne définisse l'état de la commande sur DeliveryTimedOut
.
Execution Timeout (Délai d'exécution)
Dans la console Systems Manager, vous spécifiez la valeur du délai d'exécution dans le champ Execution Timeout (Délai d'exécution) s'il est disponible. Les documents SSM ne nécessitent pas tous que vous spécifiiez un délai d'exécution. Le champ Execution Timeout (Délai d'exécution) n'est affiché que lorsqu'un paramètre d'entrée correspondant a été défini dans le document SSM. Si un délai est spécifié, la commande doit être exécutée dans ce délai.
Note
Run Command s'appuie sur la réponse terminale du document SSM Agent pour déterminer si la commande a été remise ou non à l'agent. SSM Agent doit envoyer un signal ExecutionTimedOut
pour qu'une invocation ou une commande soient marquées comme ExecutionTimedOut
.
Default Execution Timeout (Délai d'exécution par défaut)
Si un document SSM ne nécessite pas que vous spécifiiez explicitement une valeur de délai d'exécution, Systems Manager applique le délai d'exécution par défaut codé en dur.
Signalement des délais d'expiration par Systems Manager
Si Systems Manager reçoit une réponse execution timeout
de l'SSM Agent sur une cible, Systems Manager marque l'invocation de commande comme executionTimeout
.
Si Run Command ne reçoit pas de réponse terminale de document en provenance de l'SSM Agent, l'invocation de la commande est marquée comme deliveryTimeout
.
Afin de déterminer le statut du délai sur une cible, l'SSM Agent combine tous les paramètres et le contenu du document SSM pour calculer executionTimeout
. Lorsque l'SSM Agent détermine que le délai d'exécution d'une commande a expiré, il envoie executionTimeout
au service.
La valeur par défaut pour Timeout (seconds) (Délai d'expiration (secondes)) est de 3 600 secondes. La valeur par défaut pour Execution timeout (Délai d'exécution) est également de 3 600 secondes. Par conséquent, le délai d'attente total par défaut pour une commande est de 7 200 secondes.
Note
L'SSM Agent traite executionTimeout
différemment selon le type de document SSM et la version du document.