Fluxo de trabalho do dispositivo - 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 do dispositivo

Um dispositivo pode lidar com trabalhos executados usando uma das seguintes formas.

  • Consiga o próximo trabalho
    1. Quando um dispositivo se torna online pela primeira vez, ele deve assinar o tópico notify-next do dispositivo.

    2. Chamar a API MQTT DescribeJobExecution com o jobId $next para obter o próximo trabalho, seu documento de trabalho e outros detalhes, incluindo qualquer estado salvo em statusDetails. Se o documento de trabalho tiver uma assinatura de arquivo de código, você deverá verificar a assinatura antes de continuar com o processamento da solicitação de trabalho.

    3. Chamar a API MQTT UpdateJobExecution para atualizar o status do trabalho. Ou, para combinar essa e a etapa anterior em uma chamada, o dispositivo pode chamar StartNextPendingJobExecution.

    4. (Opcional) Você pode adicionar um temporizador de etapa. Para isso, defina um valor para stepTimeoutInMinutes ao chamar UpdateJobExecution ou StartNextPendingJobExecution.

    5. Executar as ações especificadas pelo documento de trabalho usando a API MQTT UpdateJobExecution para relatar o andamento do trabalho.

    6. Continue monitorando a execução do trabalho chamando a DescribeJobExecution API MQTT com esse jobId. Se a execução do trabalho for excluída, DescribeJobExecution retornará um ResourceNotFoundException.

      O dispositivo deve conseguir voltar para um estado válido se a execução do trabalho for cancelada ou excluída enquanto o dispositivo estiver executando o trabalho.

    7. Chame a UpdateJobExecution API MQTT quando finalizar o trabalho para atualizar o respectivo status e relatar êxito ou falha.

    8. Como o status de execução desse trabalho foi alterado para o estado final, o próximo trabalho disponível para execução (se houver) será alterado. O dispositivo é notificado sobre a alteração da próxima execução de trabalho pendente. Neste ponto, o dispositivo deve continuar conforme descrito na etapa 2.

    Se o dispositivo permanecer on-line, ele continuará recebendo notificações da próxima execução do trabalho pendente. Isso inclui seus dados de execução do trabalho, quando ele conclui um trabalho ou quando uma nova execução de trabalho pendente é adicionada. Quando isso ocorre, o dispositivo continua, conforme descrito na etapa 2.

  • Selecione entre os trabalhos disponíveis
    1. Quando um dispositivo se torna online pela primeira vez, ele deve assinar o tópico notify do objeto.

    2. Chamar a API MQTT GetPendingJobExecutions para obter uma lista de execuções de trabalhos pendentes.

    3. Se a lista contiver uma ou mais execuções de trabalho, selecione uma.

    4. Chamar a API MQTT DescribeJobExecution para obter o documento de trabalho e outros detalhes, incluindo qualquer estado salvo em statusDetails.

    5. Chamar a API MQTT UpdateJobExecution para atualizar o status do trabalho. Se o campo includeJobDocument estiver definido como true nesse comando, o dispositivo poderá ignorar a etapa anterior e recuperar o documento de trabalho neste ponto.

    6. Você pode adicionar um temporizador de etapa. Para isso, defina um valor para stepTimeoutInMinutes ao chamar UpdateJobExecution.

    7. Executar as ações especificadas pelo documento de trabalho usando a API MQTT UpdateJobExecution para relatar o andamento do trabalho.

    8. Continue monitorando a execução do trabalho chamando a DescribeJobExecution API MQTT com esse jobId. Se a execução de trabalho for cancelada ou excluída enquanto o dispositivo estiver executando o trabalho, o dispositivo deve conseguir voltar para um estado válido.

    9. Chame a UpdateJobExecution API MQTT quando finalizar o trabalho para atualizar o respectivo status e relatar êxito ou falha.

    Se o dispositivo permanecer online, ele será notificado de todas as execuções de trabalho pendentes quando uma nova execução de trabalho se tornar disponível. Quando isso ocorrer, o dispositivo poderá continuar, conforme descrito na etapa 2.

Se o dispositivo não puder executar o trabalho, ele deverá chamar a API MQTT UpdateJobExecution para atualizar o status do trabalho para REJECTED.