Noções básicas sobre status de comando - AWS Systems Manager

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Noções básicas sobre status de comando

O Systems Manager do Executar comando relata informações detalhadas de status sobre os estados diferentes pelos quais um comando passa durante o processamento e para cada instância que processou o comando. Você pode monitorar status de comandos usando os seguintes métodos.

  • Clique no ícone Refresh na página Run Command do Amazon EC2 console do .

  • Chame list-commands ou list-command-invocations usando a AWS CLI. Ou chame Get-SSMCommand ou Get-SSMCommandInvocation usando o AWS Tools para Windows PowerShell.

  • Configure o EventBridge para responder a alterações de estado ou status.

  • Configure o Amazon SNS para enviar notificações para todas as alterações de status ou status específicos, como Failed ou TimedOut.

Executar comandoStatus do

Executar comandoO relata detalhes de status para três áreas: plug-ins, invocações e um status de comando geral. Um plug-in é um bloco de execução de código definido no documento do Systems Manager (SSM) do comando. Para obter mais informações sobre plug-ins, consulte Systems ManagerReferência de plug-ins de documentos de comando do .

Quando você envia um comando para várias instâncias ao mesmo tempo, cada cópia do comando que é dirigida a cada instância é uma invocação de comando. Por exemplo, se você usar o AWS-RunShellScript documento e enviar um ifconfig comando para 20 instâncias do Linux, esse comando terá 20 invocações. Cada invocação de comando comunica individualmente o status. Os plug-ins para uma determinada invocação de comando também comunicam individualmente o status.

Por fim, o Executar comando inclui um status de comando agregado para todos os plug-ins e invocações. O status do comando agregado pode ser diferente do status relatado por plug-ins ou invocações, conforme observado nas tabelas a seguir.

nota

Se você executar comandos para várias instâncias usando os parâmetros max-concurrency ou max-errors, o status do comando refletirá os limites impostos por esses parâmetros, conforme descrito nas tabelas a seguir. Para obter mais informações sobre esses parâmetros, consulte Usar destinos e controles de taxa para enviar comandos para uma frota.

Status detalhado para plug-ins de comandos e invocações
Status Detalhes
Pendente O comando ainda não foi enviado para a instância ou não foi recebido pelo Agente do SSM. Se o comando não for recebido pelo agente antes do término do período que for igual à soma do parâmetro Timeout (seconds) (Tempo limite (segundos)) e do parâmetro Execution timeout (Tempo limite de execução), o status mudará eventualmente para Delivery Timed Out.
Em andamento Systems Manager O está tentando enviar o comando para a instância ou o comando foi recebido pelo Agente do SSM e começou a ser executado na instância. Dependendo do resultado de todos os plug-ins de comando, o status muda para Success, Failed Delivery Timed Out, ou Execution Timed Out. Exceção: se o agente não estiver em execução ou disponível na instância, o status do comando permanecerá em In Progress até que o agente esteja disponível novamente ou até que o tempo limite de execução seja atingido. O status então muda para um estado terminal.
Atrasado O sistema tentou enviar o comando para a instância, mas não foi bem-sucedido. O sistema tentará novamente.
Bem-sucedida O comando foi recebido pelo Agente do SSM na instância e retornou um código de saída igual a zero. Esse status não significa que o comando foi processado com sucesso na instância. Este é um estado terminal.
nota

Para solucionar erros ou obter mais informações sobre a execução de comandos, envie um comando que manipule erros ou exceções retornando códigos de saída apropriados (códigos de saída diferentes de zero para falhas de comando).

A entrega atingiu o tempo limite O comando não foi entregue à instância antes do tempo limite de entrega expirado. Os tempos limite de entrega não contam em relação ao max-errors limite do comando pai, mas contribuem para determinar se o status do comando pai é Success ou Incomplete. Este é um estado terminal.
A execução atingiu o tempo limite A execução do comando foi iniciada na instância, mas não foi concluída antes da expiração do tempo limite de execução. Os tempos limite de execução contam para o limite de max-errors do comando pai. Este é um estado terminal. Quando o tempo limite é atingido, o Systems Manager para o comando de execução.
Com falha

O comando não foi bem-sucedido na instância. Para um plug-in, isso indica que o código do resultado não foi zero. Para uma invocação de comando, isso indica que o código de resultado para um ou mais plug-ins não foi zero. Falhas de invocação contam para o limite max-errors do comando pai. Este é um estado terminal.

Canceled O comando foi encerrado antes de ser concluído. Este é um estado terminal.
Não é possível entregar O comando não pode ser entregue à instância. A instância pode não existir ou pode não estar respondendo. As invocações que não podem ser entregues não contam para o max-errors limite do comando pai, mas contribuem para determinar se o status do comando pai é Success ou Incomplete. Por exemplo, se todas as invocações em um comando tiverem o status Undeliverable, o status do comando retornado será Failed. No entanto, se um comando tiver cinco invocações, quatro das quais retornarem o status Undeliverable e uma retornar o status Success, o status do comando pai será Success. Este é um estado terminal.
Encerrado O comando pai excedeu o limite de max-errors e as invocações de comando subsequentes foram canceladas pelo sistema. Este é um estado terminal.
Plataforma inválida O comando foi enviado a uma instância que não correspondeu às plataformas necessárias especificadas pelo documento escolhido. Invalid Platform O não conta no limite de max-errors do comando pai, mas contribui para o status do comando pai ser Success (Êxito) ou Failed (Falha). Por exemplo, se todas as invocações em um comando tiverem o status Invalid Platform, o status do comando retornado será Failed. No entanto, se um comando tiver cinco invocações, quatro das quais retornarem o status Invalid Platform e uma retornar o status Success, o status do comando pai será Success. Este é um estado terminal.
Acesso negado O usuário ou a função do IAM que inicia o comando não tem acesso à instância gerenciada de destino. Access Denied O não conta contra o max-errors limite do comando pai, mas contribui para determinar se o status do comando pai é Success ou Failed. Por exemplo, se todas as invocações em um comando tiverem o status Access Denied, o status do comando retornado será Failed. No entanto, se um comando tiver cinco invocações, quatro das quais retornarem o status Access Denied e uma retornar o status Success, o status do comando pai será Success. Este é um estado terminal.
Status detalhado de um comando
Status Detalhes
Pendente O comando ainda não foi recebido por um agente em uma instância.
Em andamento O comando foi enviado para pelo menos uma instância, mas não chegou a um estado final em todas elas.
Atrasado O sistema tentou enviar o comando para a instância, mas não foi bem-sucedido. O sistema tentará novamente.
Bem-sucedida O comando foi recebido pelo Agente do SSM em todas as instâncias especificadas ou visadas e retornou um código de saída igual a zero. Todas as invocações de comando atingiram um estado terminal e o valor de max-errors não foi alcançado. Esse status não significa que o comando foi processado com sucesso em todas as instâncias especificadas ou visadas. Este é um estado terminal.
nota

Para solucionar erros ou obter mais informações sobre a execução de comandos, envie um comando que manipule erros ou exceções retornando códigos de saída apropriados (códigos de saída diferentes de zero para falhas de comando).

A entrega atingiu o tempo limite O comando não foi entregue à instância antes do tempo limite de entrega expirado. O valor de max-errors ou mais invocações de comando mostra um status de Delivery Timed Out. Este é um estado terminal.
A execução atingiu o tempo limite A execução do comando foi iniciada na instância, mas não foi concluída antes da expiração do tempo limite de execução. O valor de max-errors ou mais invocações de comando mostra um status de Execution Timed Out. Este é um estado terminal.
Com falha

O comando não foi bem-sucedido na instância. O valor de max-errors ou mais invocações de comando mostra um status de Failed. Este é um estado terminal.

Incompleto O comando foi tentado em todas as instâncias e uma ou mais das invocações não tem um valor de Success. No entanto, não houve falha em invocações suficientes para que o status fosse Failed. Este é um estado terminal.
Canceled O comando foi encerrado antes de ser concluído. Este é um estado terminal.
Taxa excedida O número de instâncias visadas pelo comando excedeu o limite da conta para invocações pendentes. O sistema cancelou o comando antes de executá-lo em qualquer instância. Este é um estado terminal.
Acesso negado O usuário ou a função do IAM que inicia o comando não tem acesso ao grupo de recursos de destino. AccessDenied O não conta contra o max-errors limite do comando pai, mas contribui para determinar se o status do comando pai é Success ou Failed. (Por exemplo, se todas as invocações em um comando tiverem o status AccessDenied, o status do comando retornado será Failed. No entanto, se um comando tiver 5 invocações, 4 das quais retornarem o status AccessDenied e 1 retornar o status Success, o status do comando pai será Success.) Este é um estado terminal.
Nenhuma instância na tag O valor do par de chaves da tag ou o grupo de recursos visado pelo comando não corresponde a nenhuma instância gerenciada. Este é um estado terminal.

Noções básicas sobre valores de tempo limite de comandos

Systems ManagerO impõe os seguintes valores de tempo limite ao executar comandos.

Tempo limite de entrega

No Systems Manager console do , você especifica o valor de tempo limite de entrega no campo Timeout (seconds) (Tempo limite (segundos)). Depois que um comando é enviado, o Executar comando verifica se o comando expirou ou não. Se um comando atingir o limite de expiração do comando (tempo limite total), ele mudará o status para DeliveryTimedOut para para todas as invocações que estão atualmente com status InProgress, Pending ou Delayed.


					O campo Timeout (seconds) (Tempo limite (segundos)) no Systems Manager console do

Em um nível mais técnico, o tempo limite de entrega (Tempo limite (segundos)) é uma combinação de dois valores de tempo limite, conforme mostrado aqui:

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

Por exemplo, o valor padrão de Timeout (seconds) (Tempo limite (segundos)) no Systems Manager console do é 600 segundos. Se você executar um comando usando o documento AWS-RunShellScript do SSM, o valor padrão de "timeoutSeconds: "{{ executionTimeout }}" será de 3.600 segundos, conforme mostrado no seguinte exemplo de documento:

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

Isso significa que o comando será executado por 4.200 segundos (70 minutos) antes que o sistema retorne um tempo limite de entrega.

Tempo limite de execução

No Systems Manager console do , especifique o valor do tempo limite de execução no campo Execution Timeout (Tempo limite de execução), se disponível. Nem todos os documentos do SSM exigem especificar um tempo limite de execução. Se especificado, o comando deve ser concluído dentro desse período.

nota

Executar comando O conta com a resposta do terminal do Agente do SSM documento para determinar se o comando foi ou não entregue ao agente. Agente do SSM O deve enviar um ExecutionTimedOut sinal para que uma invocação ou comando seja marcado como ExecutionTimedOut.


					O campo Execution Timeout (Tempo limite de execução) no Systems Manager console do

Tempo limite de execução padrão

Se um documento (do SSM) do Systems Manager não exigir especificar explicitamente um valor de tempo limite de execução, o Systems Manager vai impor o tempo limite de execução padrão codificado.

Tempo limite total

O tempo limite total é igual ao valor de delivery timeout mais execution timeout. Se não execution timeout for exigido pelo SSM documento, total timeout será igual ao valor de delivery timeout mais default execution timeout.

Como o Systems Manager relata tempos limite

Se o Systems Manager receber uma resposta execution timeout do Agente do SSM em um destino, o Systems Manager marcará a invocação do comando como executionTimeout.

Se Executar comando o não receber uma resposta do terminal do documento do Agente do SSM, a invocação do comando será marcada como deliveryTimeout.

Para determinar o status do tempo limite em um destino, o Agente do SSM combina todos os parâmetros e o conteúdo do SSM documento do a ser calculado para o executionTimeout. Quando o Agente do SSM determina que um comando expirou, ele envia executionTimeout para o serviço do .

O padrão para Timeout (seconds) (Tempo limite (segundos)) é 3.600 segundos. O padrão para Execution Timeout também é 3600 segundos. Portanto, o tempo limite padrão total para um comando é 7200 segundos.

nota

O Agente do SSM processa executionTimeout de forma diferente dependendo do tipo de documento do SSM e da versão do documento.