Informazioni sugli stati dei comandi - AWS Systems Manager

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Informazioni sugli stati dei comandi

Run Command, una funzionalità di AWS Systems Manager, riporta informazioni dettagliate sullo stato dei diversi stati sperimentati da un comando durante l'elaborazione e per ogni nodo gestito che ha elaborato il comando. È possibile monitorare lo stato dei comando usando i metodi seguenti.

  • Scegli l'icona Refresh (Aggiorna) della scheda Commands (Comandi) nell'interfaccia della console Run Command.

  • Chiama list-commands o list-command-invocations utilizzando (). AWS Command Line Interface AWS CLIOppure chiamate Get-SSMCommand o CommandInvocation AWS Tools for Windows PowerShell Get-SSM utilizzando.

  • Configura Amazon EventBridge per rispondere ai cambiamenti di stato o di stato.

  • Configura il Servizio di notifica semplice Amazon (Amazon SNS) per l'invio di notifiche per tutte le modifiche di stato o per stati specifici come Failed o TimedOut.

Stato di Run Command

Run Command indica dettagli di stato per tre aree: plugin, invocazioni e stato generale dei comandi. Un plugin è un blocco di esecuzione di codice definito nel documento del comando. Per ulteriori informazioni sui plugin , consulta Documentazione di riferimento del plugin per i documenti di comando .

Quando si invia un comando a più nodi gestiti contemporaneamente, ogni copia del documento destinata a ogni nodo è denominata invocazione di comando. Ad esempio, se usi il documento AWS-RunShellScript e invii un comando ifconfig a 20 istanze, quel comando ha 20 invocazioni. Ogni invocazione di comando segnala lo stato individualmente. Anche i plugin per una determinata invocazione di comando segnalano lo stato individualmente.

Infine, Run Command include uno stato di comando aggregato per tutti i plugin e le invocazioni. Lo stato di comando aggregato può essere diverso rispetto allo stato segnalato dai plugin o dalle invocazioni, come mostrato nelle tabelle seguenti.

Nota

Se si eseguono comandi su un numero elevato di nodi gestiti utilizzando i parametri max-concurrency o max-errors, lo stato dei comandi riflette le limitazioni imposte da quei parametri, come descritto nelle tabelle seguenti. Per ulteriori informazioni su questi parametri, consultare Esecuzione di comandi su vasta scala.

Stato dettagliato per i plugin e le invocazioni dei comandi
Stato Informazioni
In attesa Il comando non è stato ancora inviato al nodo gestito o non è stato ricevuto da SSM Agent. Se il comando non viene ricevuto dall'agente prima che passi il tempo che è uguale alla somma delTimeout (secondi)e il parametroExecution timeout (Timeout di esecuzione)Parametro, lo stato cambia inDelivery Timed Out.
InProgress Systems Manager sta tentando di inviare il comando al nodo gestito oppure il comando è stato ricevuto da SSM Agent e ha iniziato a funzionare sull'istanza. A seconda del risultato di tutti i plugin dei comandi, lo stato passerà a Success, Failed, Delivery Timed Out o Execution Timed Out. Eccezione: se l'agente non è in esecuzione o è disponibile nel nodo, lo stato del comando rimane in In Progress finché l'agente non è nuovamente disponibile o fino al raggiungimento del limite di timeout di esecuzione. Lo stato passerà quindi a uno stato terminale.
Delayed (Ritardato) Il sistema ha tentato di inviare il comando al nodo gestito, ma non è riuscito. Il sistema riprova.
Riuscito Questo status viene restituito in diverse condizioni. Questo stato non significa che il comando è stato elaborato correttamente sul nodo. Ad esempio, il comando può essere ricevuto dal SSM Agent nodo gestito e restituire un codice di uscita pari a zero come risultato dell' PowerShell ExecutionPolicyimpossibilità dell'esecuzione del comando. Si tratta di uno stato terminale. Le condizioni che determinano la restituzione di uno Success stato da un comando sono:
  • Quando è stato scelto come target una singola istanza, il comando è stato ricevuto dal SSM Agent nodo gestito e ha restituito un codice di uscita pari a zero.

  • Quando si utilizza come target più istanze, il numero di chiamate non riuscite non ha superato la soglia di errore specificata nel comando.

  • Quando si utilizza come target più istanze, almeno una chiamata è riuscita mentre le altre sono scadute. La soglia di errore specificata è ancora valida.

  • Quando si sceglie come target un tag, non viene trovata alcuna istanza associata al tag.

  • Quando si sceglie come target un tag, il numero di chiamate fallite non ha superato la soglia di errore specificata nel comando.

  • Quando si sceglie come target un tag, almeno una chiamata è riuscita mentre le altre sono scadute. La soglia di errore specificata è ancora valida.

  • Esistono applicazioni o politiche applicate a livello di sistema operativo che impediscono o sovrascrivono l'esecuzione di un comando con conseguente restituzione di un codice di uscita pari a zero.

Nota

Le stesse condizioni si applicano quando si sceglie come target i gruppi di risorse. Per risolvere gli errori o ottenere ulteriori informazioni sull'esecuzione del comando, invia un comando che gestisce gli errori o le eccezioni restituendo codici di uscita appropriati (codici di uscita diversi da zero in caso di errore del comando).

DeliveryTimedFuori Il comando non è stato recapitato al nodo gestito prima della scadenza del timeout complessivo. I timeout complessivi non vengono conteggiati per il limite max-errors del comando padre, ma sono rilevanti per la definizione dello stato del comando come Success, Incomplete o Delivery Timed Out. Si tratta di uno stato terminale.
ExecutionTimedFuori L'esecuzione del comando è iniziata sul nodo gestito, ma non è stata completata prima della scadenza. I timeout di esecuzione contano come un errore che invierà una risposta diversa da zero e Systems Manager interromperà il tentativo di esecuzione dell'automazione dei comandi, segnalando lo stato di errore.
Non riuscito Il comando non è riuscito sul nodo gestito. Per un plugin, questo indica che il codice del risultato non era zero. Per un'invocazione del comando, questo indica che il codice del risultato per uno o più plugin non era zero. Le invocazioni non riuscite vengono conteggiate per il limite max-errors del comando padre. Si tratta di uno stato terminale.
Annullato Il comando è stato terminato prima del completamento. Si tratta di uno stato terminale.
Undeliverable (Non consegnabile) Il comando non può essere recapitato al nodo gestito. Il nodo potrebbe non esistere o non rispondere. Le invocazioni non consegnabili non vengono conteggiate per il limite max-errors del comando padre e non sono rilevanti per la definizione dello stato del comando come Success o Incomplete. Ad esempio, se tutte le invocazioni in un comando dispongono dello stato Undeliverable, lo stato del comando restituito è Failed. Tuttavia, se un comando dispone di 5 invocazioni, 4 delle quali restituiscono lo stato Undeliverable e 1 delle quali restituisce lo stato Success, lo stato del comando padre è Success. Si tratta di uno stato terminale.
Terminated (Terminato) Il comando padre ha superato il limite max-errors e le successive invocazioni del comando sono state annullate dal sistema. Si tratta di uno stato terminale.
InvalidPlatform Il comando è stato inviato a un nodo gestito che non corrisponde alle piattaforme richieste specificate dal documento scelto. Invalid Platform non viene conteggiato per il limite massimo di errori del comando padre, ma contribuisce a determinare lo stato del comando come Successo o Failed. Ad esempio, se tutte le invocazioni in un comando dispongono dello stato Invalid Platform, lo stato del comando restituito è Failed. Tuttavia, se un comando dispone di 5 invocazioni, 4 delle quali restituiscono lo stato Invalid Platform e 1 delle quali restituisce lo stato Success, lo stato del comando padre è Success. Si tratta di uno stato terminale.
AccessDenied L'utente o il ruolo AWS Identity and Access Management (IAM) che avvia il comando non ha accesso al nodo gestito di destinazione. Access Deniednon viene conteggiato nel max-errors limite del comando principale, ma contribuisce a determinare se lo stato del comando principale è Success oFailed. Ad esempio, se tutte le invocazioni in un comando dispongono dello stato Access Denied, lo stato del comando restituito è Failed. Tuttavia, se un comando dispone di 5 invocazioni, 4 delle quali restituiscono lo stato Access Denied e 1 delle quali restituisce lo stato Success, lo stato del comando padre è Success. Si tratta di uno stato terminale.
Stato dettagliato per un comando
Stato Informazioni
In attesa Il comando non è ancora stato ricevuto da un agente su qualsiasi nodo gestito.
InProgress Il comando è stato inviato ad almeno un'istanza, ma non ha raggiunto lo stato finale su ogni nodo gestito.
Delayed (Ritardato) Il sistema ha tentato di inviare il comando al nodo, ma non è riuscito. Il sistema riprova.
Riuscito Il comando è stato ricevuto da SSM Agent su tutti i nodi gestiti specificati o destinazione e ha restituito un codice di uscita zero. Tutte le invocazioni di comando hanno raggiunto uno stato terminale e non è stato raggiunto il valore max-errors. Questo stato non significa che il comando è stato elaborato correttamente su tutti i nodi gestiti specificati o destinazione. Si tratta di uno stato terminale.
Nota

Per risolvere gli errori o ottenere ulteriori informazioni sull'esecuzione del comando, invia un comando che gestisce gli errori o le eccezioni restituendo codici di uscita appropriati (codici di uscita diversi da zero in caso di errore del comando).

DeliveryTimedFuori Il comando non è stato recapitato al nodo gestito prima della scadenza del timeout complessivo. Il valore di max-errors o altre invocazioni del comando mostra lo stato Delivery Timed Out. Si tratta di uno stato terminale.
Non riuscito

Il comando non è riuscito sul nodo gestito. Il valore di max-errors o altre invocazioni del comando mostra lo stato Failed. Si tratta di uno stato terminale.

Incomplete (Incompleto) Il comando è stato tentato su tutti i nodi gestiti e una o più invocazioni non hanno il valore Success. Il numero delle invocazioni non riuscite, però, non è sufficiente perché lo stato sia Failed. Si tratta di uno stato terminale.
Annullato Il comando è stato terminato prima del completamento. Si tratta di uno stato terminale.
RateExceeded Il numero di nodi gestiti definiti come target dal comando ha superato la quota dell'account per le invocazioni in attesa. Il sistema ha annullato il comando prima di eseguirlo su qualsiasi nodo. Si tratta di uno stato terminale.
AccessDenied L'utente o il ruolo che avvia il comando non dispone dell'accesso al gruppo di risorse target. AccessDenied non viene conteggiato ai fini del limite di max-errors del comando padre, ma contribuisce a stabilire se lo stato del comando padre è Success o Failed. Ad esempio, se tutte le invocazioni in un comando dispongono dello statoAccessDenied, lo stato del comando restituito èFailed. Tuttavia, se un comando dispone di 5 invocazioni, 4 delle quali restituiscono lo statoAccessDeniede 1 dei quali restituisce lo statoSuccess, lo stato del comando genitore èSuccess.) Si tratta di uno stato terminale.
Nessuna istanza nel tag Il valore del tag chiave-coppia o il gruppo di risorse cui fa riferimento il comando non corrisponde ad alcun nodo gestito. Si tratta di uno stato terminale.

Informazioni sui valori di timeout dei comandi

Systems Manager applica i seguenti valori di timeout durante l'esecuzione dei comandi.

Timeout totale

Nella console Systems Manager, specifica il valore di timeout nel campo Timeout (seconds) (Timeout [secondi]). Dopo l'invio di un comando,Run Commandcontrolla se il comando è scaduto o meno. Se un comando raggiunge il limite di scadenza del comando (timeout totale), lo stato viene modificato inDeliveryTimedOutper tutte le chiamate che hanno lo statoInProgress,PendingoDelayed.

Il campo Timeout (secondi) nella console Systems Manager

A livello più tecnico, il timeout complessivo, ossia Timeout (seconds) (Timeout [secondi]), è una combinazione di due valori di timeout, come illustrato di seguito:

Total timeout = "Timeout(seconds)" from the console + "timeoutSeconds": "{{ executionTimeout }}" from your SSM document

Ad esempio, il valore predefinito diTimeout (secondi)Nella console Systems Manager è di 600 secondi. Se si esegue un comando utilizzando il comandoAWS-RunShellScriptSSM, il valore predefinito di«TimeoutSeconds»: «{{executionTimeout}}»è di 3600 secondi, come mostrato nell'esempio di documento seguente:

"executionTimeout": { "type": "String", "default": "3600", "runtimeConfig": { "aws:runShellScript": { "properties": [ { "timeoutSeconds": "{{ executionTimeout }}"

Ciò significa che il comando viene eseguito per 4.200 secondi (70 minuti) prima che il sistema imposti lo stato del comando su DeliveryTimedOut.

Timeout di esecuzione

Nella console Systems Manager specificare il valore di timeout di esecuzione nel campo Execution Timeout (Timeout di esecuzione), se disponibile. Non tutti i documenti SSM richiedono di specificare un timeout di esecuzione. Il campo Execution Timeout (Timeout di esecuzione) viene visualizzato solo quando un parametro di input corrispondente è stato definito nel documento SSM. Se specificato, il comando deve essere completato entro questo periodo di tempo.

Nota

Run Commandsi basa sulSSM Agentper determinare se il comando è stato recapitato o meno all'agente.SSM Agentdeve inviare unExecutionTimedOutsegnale per una chiamata o un comando da contrassegnare comeExecutionTimedOut.

Il campo Timeout di esecuzione nella console Systems Manager
Timeout di esecuzione predefinito

Se un documento SSM non richiede di specificare esplicitamente un valore di timeout di esecuzione, Systems Manager applica il timeout di esecuzione predefinito hard-coded.

Come Systems Manager segnala i timeout

Se Systems Manager riceve una risposta execution timeout da SSM Agent su una destinazione, Systems Manager contrassegna la chiamata del comando come executionTimeout.

SeRun Commandnon riceve una risposta del terminale di documenti daSSM Agent, l'invocazione del comando è contrassegnata comedeliveryTimeout.

Per determinare lo stato di timeout su una destinazione, SSM Agent combina tutti i parametri e il contenuto del documento da calcolare per executionTimeout. Quando SSM Agent determina che un comando è scaduto, invia executionTimeout al servizio.

Il valore predefinito perTimeout (secondi)è 3600 secondi. Il valore predefinito perTimeout di esecuzioneè anche 3600 secondi. Pertanto, il timeout predefinito totale per un comando è 7200 secondi.

Nota

SSM Agent elabora executionTimeout in modo diverso a seconda del tipo di documento e della versione del documento.