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á.
Conceitos e status de comandos
Use AWS IoT comandos para enviar uma instrução da nuvem para um dispositivo conectado AWS IoT a. Para usar o recurso de comandos:
-
Primeiro, crie um recurso de comando com uma carga que contenha as configurações necessárias para executar o comando no dispositivo.
-
Especifique o dispositivo de destino que receberá a carga e executará as ações especificadas.
-
Execute o comando no dispositivo de destino e recupere as informações de status do dispositivo. Para solucionar qualquer problema, consulte os CloudWatch registros.
Para obter mais informações sobre esse fluxo de trabalho, consulte Fluxo de trabalho de comandos de alto nível.
Conceitos-chave de comandos
Veja a seguir alguns conceitos-chave para usar o recurso de comandos.
- Comandos
-
Comandos são instruções enviadas da nuvem para seus dispositivos de IoT. Essas instruções (carga útil do comando) são enviadas aos dispositivos como MQTT mensagens. Depois que os dispositivos receberem a carga útil do comando, eles poderão processar as instruções para realizar a ação correspondente. Exemplos dessas ações incluem a modificação das configurações do dispositivo, a transmissão de leituras do sensor ou o upload de registros. Os dispositivos podem então executar o comando e retornar o resultado para a nuvem. Isso permite monitorar e controlar remotamente os dispositivos conectados.
- Namespace
-
Ao usar o recurso de comandos, você pode especificar o namespace para o comando. Quando quiser criar um comando no AWS IoT Device Management, você deve usar o
AWS-IoT
namespace padrão. Ao usar esse namespace, você deve fornecer uma carga útil ao criar o comando. A carga será usada quando você executar o comando no dispositivo de destino. Se quiser criar um comando para AWS IoT FleetWise em vez disso, você deve usar oAWS-IoT-FleetWise
namespace em vez disso. Para obter mais informações, consulte Comandos remotos no guia do AWS IoT FleetWise desenvolvedor para comandos. - Carga útil
-
Ao criar o comando, você deve fornecer uma carga que defina as ações que o dispositivo deve executar. A carga pode usar qualquer formato de sua escolha. Para garantir que o dispositivo possa ler e entender corretamente as informações que você está enviando, recomendamos que você especifique o tipo de formato da carga útil no comando. Se seus dispositivos usaremMQTT5, eles poderão seguir o MQTT padrão para identificar o formato da carga útil. Um indicador de formato para JSON ou CBOR estará disponível no tópico de solicitação de comandos.
- Dispositivo de destino
-
Quando quiser executar o comando, você deve especificar um dispositivo de destino que receberá o comando e executará ações. Se o seu dispositivo foi registrado como uma coisa com AWS IoT, você pode usar o nome da coisa. Se seu dispositivo não tiver sido registrado, você poderá usar o ID do MQTT cliente em vez disso. O ID do cliente é um identificador exclusivo para seu dispositivo ou cliente definido no MQTT protocolo. Ele pode ser usado para conectar seu dispositivo AWS IoT a.
- Execução de comandos
-
A execução de um comando é uma instância de um comando executado no dispositivo de destino. Quando você inicia a execução, o comando (carga) é entregue ao dispositivo de destino. Agora, um ID exclusivo de execução de comando é gerado para o destino. O dispositivo pode então executar o comando e relatar seu progresso para AWS IoT o. A lógica do lado do dispositivo determina como o comando será executado e como o status será publicado nos tópicos reservados.
- Tópicos de comandos
-
Antes de executar o comando, seu dispositivo deve ter se inscrito no tópico de solicitação de comandos. Quando você envia a solicitação à nuvem para executar o comando, a carga útil será enviada ao dispositivo no tópico de solicitação de comandos. Depois que o dispositivo executa o comando, ele pode publicar o resultado e o status da execução no tópico de resposta do comando. Para obter mais informações, consulte Tópicos de comandos.
Estados de comando
Um comando que você cria no seu Conta da AWS pode estar no estado de exclusão Disponível, Obsoleto ou Pendente.
- Disponível
-
Depois de criar com sucesso um recurso de comando, ele estará em um estado disponível. O comando agora pode ser usado para enviar uma execução de comando para o dispositivo.
- Preterido
-
Se você não pretende mais usar um comando, você pode marcá-lo como obsoleto. Nesse estado, você não pode enviar nenhuma nova execução do comando para seus dispositivos. Todas as execuções pendentes que já tenham sido iniciadas continuarão sendo executadas no dispositivo até serem concluídas. Para enviar novas execuções, você deve restaurar o comando para que ele fique disponível.
- Exclusão pendente
-
Quando você marca um comando para exclusão, se o comando tiver sido descontinuado por um período maior que o tempo limite máximo, o comando será excluído automaticamente. Essa ação é permanente e não pode ser desfeita. Por padrão, a duração máxima do tempo limite é de 12 horas. Se o comando não estiver obsoleto ou tiver sido preterido por um período menor que o tempo limite máximo, o comando estará em um estado de exclusão pendente. O comando será removido automaticamente da sua conta após o tempo limite máximo.
Status de execução do comando
Quando você inicia a execução do comando no dispositivo de destino, a execução do comando entra em um CREATED
status. Em seguida, ele pode fazer a transição para qualquer outro status de execução de comando, dependendo do status relatado pelo dispositivo. Em seguida, você pode recuperar as informações de status e rastrear suas execuções de comandos.
nota
Para um determinado dispositivo de destino, você pode executar vários comandos simultaneamente. Você pode usar o recurso de controle de simultaneidade para limitar o número máximo de execuções enviadas para o mesmo dispositivo, o que evita que o dispositivo seja sobrecarregado. Para obter informações sobre o número máximo de execuções simultâneas que você pode executar para cada dispositivo, consulte cotas de AWS IoT Device Management comandos.
A tabela a seguir mostra os diferentes status da execução de um comando e como a execução do comando faz a transição entre os vários status, dependendo do progresso da execução.
Status de execução do comando | Iniciado por dispositivo/nuvem? | Execução do terminal? | Transições de status permitidas |
---|---|---|---|
CREATED |
Nuvem | Não |
|
IN_PROGRESS |
Dispositivo | Não |
|
TIMED_OUT |
Dispositivo e nuvem | Não |
|
SUCCEEDED |
Dispositivo | Sim | Não aplicável |
FAILED |
Dispositivo | Sim | Não aplicável |
REJECTED |
Dispositivo | Sim | Não aplicável |
Conforme seus dispositivos executam o comando, eles podem publicar atualizações do status e do resultado a qualquer momento na nuvem usando os MQTT tópicos reservados dos comandos. Para fornecer contexto adicional sobre o status de cada execução de comando na nuvem, ela pode usar os reasonCode
e reasonDescription
que estão contidos no statusReason
objeto.
O diagrama a seguir mostra os vários status de execução do comando e como a transição ocorre entre eles.

A seção a seguir descreve as execuções de comandos terminais e não terminais, os vários status de execução e como elas funcionam.
Execuções de comandos não terminais
A execução do comando não é terminal se a execução puder aceitar atualizações de dispositivos ou clientes. Uma execução em um status não terminal é considerada Ativa. Os status a seguir não são terminais.
-
CREATED
Quando você inicia a execução de um comando no AWS IoT console ou usa o tópico
StartCommandExecution
API para enviar o comando ao seu dispositivo usando o tópico de solicitação de comandos. Se a solicitação for bem-sucedida, o status de execução do comando será alterado paraCREATED
. A partir desse status, a execução do comando pode fazer a transição para qualquer outro status não terminal ou terminal. -
EM_ PROGRESS
Depois de receber a carga útil do comando, seu dispositivo pode começar a executar as instruções na carga útil e realizar as ações especificadas. Ao executar o comando, o dispositivo pode publicar uma resposta ao tópico de resposta de comandos e atualizar o status de execução do comando como
IN_PROGRESS
. A partir doIN_PROGRESS
status, a execução do comando pode fazer a transição para qualquer outro status terminal ou não terminal, exceto.CREATED
nota
O
UpdateCommandExecution
API pode ser invocado várias vezes com o status deIN_PROGRESS
. Você pode especificar detalhes adicionais sobre a execução usando ostatusReason
objeto. -
TIMED_OUT
Esse status de execução do comando pode ser acionado tanto pela nuvem quanto pelo dispositivo. O
IN_PROGRESS
status de uma execução emCREATED
ou pode mudar para oTIMED_OUT
status devido aos seguintes motivos.-
Depois que o comando é enviado ao dispositivo, um cronômetro é iniciado. Se não houver resposta do dispositivo dentro de um período especificado, a nuvem alterará o status de execução do comando para
TIMED_OUT
. Nesse caso, a execução do comando não é terminal. -
O dispositivo pode substituir o status por qualquer um dos outros status do terminal ou relatar que ocorreu um tempo limite ao executar o comando e definir o status como.
TIMED_OUT
Nesse caso, o status de execução permanece emTIMED_OUT
, mas os campos doStatusReason
objeto mudam dependendo das informações relatadas pelos dispositivos. A execução do comando agora se torna terminal.
Para obter mais informações, consulte Valor do tempo limite e status TIMED_OUT de execução.
-
Execuções de comandos do terminal
A execução de um comando se torna terminal se a execução não aceitar mais nenhuma atualização adicional dos dispositivos. Os status a seguir são terminais. Uma execução pode fazer a transição para os status do terminal a partir de qualquer um dos status não terminais,,CREATED
, IN_PROGRESS
ou. TIMED_OUT
-
SUCCEEDED
Se o dispositivo concluir com êxito a execução do comando, ele poderá publicar uma resposta ao tópico de resposta dos comandos e atualizar o status de execução do comando para
SUCCEEDED
. -
FAILED
Quando seu dispositivo não consegue concluir a execução do comando, ele pode publicar uma resposta ao tópico de resposta dos comandos e atualizar o status de execução do comando para
FAILED
. Você pode usar osreasonDescription
camposreasonCode
e dostatusReason
objeto, ou os CloudWatch registros, para solucionar ainda mais as falhas. -
REJECTED
Quando seu dispositivo recebe uma solicitação inválida ou incompatível, ele pode invocá-la
UpdateCommandExecution
API com o status de.REJECTED
Você pode usar osreasonDescription
camposreasonCode
e dostatusReason
objeto, ou os CloudWatch registros, para solucionar ainda mais quaisquer problemas.