Fluxo de trabalho de comandos de alto nível - AWS IoT Core

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

Fluxo de trabalho de comandos de alto nível

Esse fluxo de trabalho mostra como os dispositivos interagem com AWS IoT Device Management os comandos. Todas as solicitações da API HTTP usam credenciais Sigv4 para assinatura.

Visão geral do fluxo de trabalho de alto nível do comando do AWS IoT Device Management dispositivo.

Criar e gerenciar comandos

Para criar e gerenciar comandos para seus dispositivos, realize as etapas a seguir.

  1. Criar um recurso de comando

    Crie um comando no Command Hub ou usando a CreateCommandAPI.

  2. Especificar a carga útil

    Forneça uma carga em qualquer formato. Especifique o tipo de conteúdo para garantir a interpretação correta do dispositivo.

    Para comandos dinâmicos com modelos de carga útil, a carga útil final é gerada em tempo de execução usando os parâmetros fornecidos. Os modelos oferecem suporte somente ao formato JSON, mas a carga gerada pode ser enviada como JSON ou CBOR.

  3. (Opcional) Gerenciar os comandos criados

    Atualize o nome de exibição e a descrição após a criação. Marque os comandos como obsoletos quando não forem mais necessários ou exclua-os permanentemente. Para modificar as informações do Payload, crie um novo Comando.

Escolher o dispositivo de destino para os comandos e assinar os tópicos do MQTT

Escolha seu dispositivo de destino e configure os tópicos do MQTT para receber comandos e publicar respostas.

  1. Escolher o dispositivo de destino para o comando

    Escolha um dispositivo de destino para receber e executar o Comando. Use um nome Thing para dispositivos registrados ou uma ID de cliente para dispositivos não registrados. Para obter mais informações, consulte Considerações sobre dispositivos de destino.

  2. Configurar a política AWS IoT do dispositivo

    Configure uma política do IAM concedendo permissões para receber execuções e publicar atualizações. Consulte Exemplo de política do IAM exemplos de políticas.

  3. Estabelecer uma conexão do MQTT

    Conecte dispositivos ao agente de mensagens e assine os tópicos de solicitação e resposta. Os dispositivos precisam de iot:Connect permissão. Encontre seu endpoint do plano de dados usando o comando da DescribeEndpoint API ou da describe-endpoint CLI:

    aws iot describe-endpoint --endpoint-type iot:Data-ATS

    A execução desse comando exibe o endpoint do plano de dados específico da conta, conforme mostrado abaixo.

    account-specific-prefix.iot.region.amazonaws.com
  4. Inscreva-se nos tópicos de comandos

    Inscreva-se no tópico de solicitação de comandos. Quando você inicia uma execução, o agente de mensagens publica a carga neste tópico. Seu dispositivo recebe e processa o Comando.

    (Opcional) Inscreva-se nos tópicos de resposta (acceptedourejected) para receber a confirmação se o serviço de nuvem aceitou ou rejeitou a resposta do dispositivo.

    Neste exemplo, substitua:

    • <device> por thing ou client dependendo de o dispositivo que você está considerando ter sido registrado como uma coisa da IoT ou especificado como um cliente do MQTT.

    • <DeviceID> pelo identificador exclusivo do seu dispositivo de destino. Esse ID pode ser o exclusivo do cliente do MQTT ou o nome de uma coisa.

    nota

    Se o tipo de carga não for JSON ou CBOR, o <PayloadFormat> campo pode não estar presente no tópico de solicitação de comandos. Para obter o formato da carga útil, recomendamos que você use MQTT5 para obter as informações de formato dos cabeçalhos das mensagens do MQTT. Para obter mais informações, consulte Tópicos de comandos.

    $aws/commands/<devices>/<DeviceID>/executions/+/request/<PayloadFormat> $aws/commands/<devices>/<DeviceID>/executions/+/response/accepted/<PayloadFormat> $aws/commands/<devices>/<DeviceID>/executions/+/response/rejected/<PayloadFormat>

Iniciar e monitorar as execuções de comando para o dispositivo de destino

Depois de criar os comandos e especificar os destinos deles, você pode iniciar a execução no dispositivo de destino realizando as etapas a seguir.

  1. Iniciar a execução do comando no dispositivo de destino

    Inicie a execução no Command Hub ou usando a StartCommandExecution API com o endpoint específico da sua conta. Use iot:Data-ATS para pilha dupla (IPv4/IPv6) ou iot:Jobs somente para. IPv4

    A API publica a carga no tópico de solicitação de comandos.

    nota

    Se o dispositivo estiver off-line e usar sessões persistentes do MQTT, o Comando aguarda no agente de mensagens. Quando o dispositivo se reconecta antes do tempo limite, ele pode processar o Comando e publicar os resultados. Se o tempo limite expirar, a execução expirará e a carga será descartada.

  2. Atualizar o resultado da execução do comando

    O dispositivo recebe a carga, processa o comando, executa as ações especificadas e publica os resultados no tópico de resposta dos comandos usando a API baseada em UpdateCommandExecution MQTT. Se estiver inscrito em tópicos aceitos e rejeitados, o dispositivo receberá a confirmação se o serviço de nuvem aceitou ou rejeitou a resposta.

    Dependendo do que você especificou no tópico da solicitação, <devices> podem ser coisas ou clientes, e <DeviceID> pode ser o nome do seu AWS IoT item ou o ID do cliente MQTT.

    nota

    <PayloadFormat> pode ser JSON ou CBOR no tópico de resposta dos comandos.

    $aws/commands/<devices>/<DeviceID>/executions/<ExecutionId>/response/<PayloadFormat>
  3. (Opcional) Recuperar o resultado da execução do comando

    Recupere os resultados da execução do AWS IoT console ou usandoGetCommandExecution. O dispositivo deve publicar os resultados no tópico de resposta dos comandos para obter as informações mais recentes. Veja detalhes adicionais, incluindo hora da última atualização, resultado e hora de conclusão.

(Opcional) Habilitar notificações para eventos de comandos

Inscreva-se nos eventos de Commands para receber notificações quando o status de execução mudar.

  1. Criar uma regra de tópico

    Inscreva-se no tópico de eventos de Comandos para receber notificações de mudança de status. Crie uma regra de tópico para rotear dados do dispositivo para outros AWS IoT serviçosAWS Lambda, como Amazon SQS e AWS Step Functions, usando o AWS IoT console ou. Criação de uma AWS IoT regra

    Neste exemplo, substitua <CommandID> pelo identificador do comando para o qual você deseja receber notificações e <CommandExecutionStatus> pelo status da execução do comando.

    $aws/events/commandExecution/<CommandID>/<CommandExecutionStatus>
    nota

    Para receber notificações de todos os comandos e os status de execução deles, você pode usar caracteres curinga e assinar o tópico a seguir.

    $aws/events/commandExecution/+/#
  2. Receber e processar eventos de comandos

    Gerencie as notificações push de comandos e crie aplicativos usando os eventos inscritos.

O código a seguir mostra um exemplo de carga útil para as notificações de eventos de comandos que você receberá.

{ "executionId": "2bd65c51-4cfd-49e4-9310-d5cbfdbc8554", "status":"FAILED", "statusReason": { "reasonCode": "DEVICE_TOO_BUSY", "reasonDescription": "" }, "eventType": "COMMAND_EXECUTION", "commandArn":"arn:aws:iot:us-east-1:123456789012:command/0b9d9ddf-e873-43a9-8e2c-9fe004a90086", "targetArn":"arn:aws:iot:us-east-1:123456789012:thing/5006c3fc-de96-4def-8427-7eee36c6f2bd", "timestamp":1717708862107 }