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, uno strumento in 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.

  • Scegliete l'icona Aggiorna nella scheda Comandi del Run Command interfaccia della console.

  • Chiama i comandi dell'elenco o list-command-invocationsusa AWS Command Line Interface ()AWS CLI. Oppure chiama Get- SSMCommand o Get- SSMCommand Invocation usando. AWS Tools for Windows PowerShell

  • 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.

Run Command status

Run Command riporta i dettagli sullo stato per tre aree: plugin, invocazioni e lo 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 chiamate. 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 sia trascorso il periodo di tempo che è uguale alla somma del parametro Timeout (secondi) e del parametro Execution timeout, lo stato cambia in. Delivery 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 stato viene restituito in diverse condizioni. Questo stato non significa che il comando è stato elaborato correttamente sul nodo. Ad esempio, il comando può essere ricevuto da SSM Agent sul nodo gestito e restituisce 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 stato Success da un comando sono:
  • Quando è stato scelto come target una singola istanza, il comando è stato ricevuto da SSM Agent sul nodo gestito e ha restituito un codice di uscita pari a zero.

  • Quando si utilizzano come destinazione più istanze, il numero di invocazioni non riuscite non ha superato la soglia di errore specificata nel comando.

  • Quando si utilizzano come destinazione più istanze, almeno un'invocazione è riuscita mentre le altre sono scadute. La soglia di errore specificata è ancora valida.

  • Quando si utilizza come destinazione un tag, non viene trovata alcuna istanza associata al tag.

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

  • Quando si utilizza come destinazione un tag, almeno un'invocazione è riuscita mentre le altre sono scadute. La soglia di errore specificata è ancora valida.

  • Esistono applicazioni o policy 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 destinazione 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).

DeliveryTimedOut 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.
ExecutionTimedOut 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 mirati e ha restituito un codice di uscita pari a 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).

DeliveryTimedOut 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 Command controlla 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 Command si basa su SSM Agent documenta la risposta del terminale per determinare se il comando è stato consegnato o meno all'agente. SSM Agent deve inviare un ExecutionTimedOut segnale affinché un'invocazione o un comando venga contrassegnato come. ExecutionTimedOut

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 execution timeout risposta da SSM Agent su una destinazione, quindi Systems Manager contrassegna l'invocazione del comando come. executionTimeout

Se Run Command non riceve una risposta dal terminale dei documenti da SSM Agent, l'invocazione del comando è contrassegnata come. deliveryTimeout

Per determinare lo stato del timeout su una destinazione, SSM Agent combina tutti i parametri e il contenuto del documento SSM per cui effettuare il calcolo. executionTimeout Quando SSM Agent determina che un comando è scaduto, viene inviato 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 SSM e della versione del documento.