Flusso di lavoro dei dispositivi - AWS IoT Core

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

Flusso di lavoro dei dispositivi

Un dispositivo è in grado di gestire i processi eseguiti attraverso uno dei seguenti modi.

  • Ottieni il processo successivo
    1. Quando un dispositivo passa online per la prima volta, deve sottoscrivere l'argomento notify-next del dispositivo.

    2. Chiama l'API MQTT DescribeJobExecution con jobId $next per ottenere il processo successivo, il relativo documento e altri dettagli, inclusi gli stati salvati in statusDetails. Se il documento del processo ha una firma del file del codice, è necessario verificare la firma prima di continuare con l'elaborazione della richiesta di processo.

    3. Viene chiamata l'API MQTT UpdateJobExecution per aggiornare lo stato del processo. In alternativa, combinando questa fase con la precedente, il dispositivo può chiamare StartNextPendingJobExecution.

    4. (Facoltativo) Puoi aggiungere un timer della fase impostando un valore per stepTimeoutInMinutes quando richiami UpdateJobExecution o StartNextPendingJobExecution.

    5. Vengono eseguite le operazioni specificate dal documento del processo usando l'API MQTT UpdateJobExecution per segnalare lo stato del processo.

    6. Continua a monitorare l'esecuzione del processo chiamando l'API MQTT DescribeJobExecution con questo jobId. Se l'esecuzione del processo viene eliminata, DescribeJobExecution restituisce un ResourceNotFoundException.

      Se l'esecuzione del processo viene annullata o eliminata mentre il dispositivo sta eseguendo il processo, il dispositivo dovrebbe essere in grado di effettuare il ripristino del processo a uno stato valido.

    7. Chiama l'UpdateJobExecutionAPI MQTT al termine del processo per aggiornare lo stato del processo e segnalare l'esito positivo o negativo.

    8. Poiché lo stato dell'esecuzione di questo processo è stato modificato in stato terminale, il processo successivo disponibile per l'esecuzione (se presente) cambia. Al dispositivo viene inviata una notifica che segnala che l'esecuzione del processo in sospeso successiva è cambiata. A questo punto, il dispositivo deve continuare come descritto nella fase 2.

    Se il dispositivo rimane online, continua a ricevere le notifiche per le successive esecuzioni di processo in sospeso. Ciò include i dati di esecuzione del processo, quando un processo viene completato o viene aggiunta una nuova esecuzione del processo in sospeso. Quando ciò si verifica, il dispositivo continua come descritto nella fase 2.

  • Seleziona tra i processi disponibili
    1. Quando un dispositivo passa online per la prima volta, deve sottoscrivere l'argomento notify dell'oggetto.

    2. Chiama l'API MQTT GetPendingJobExecutions per ottenere un elenco delle esecuzioni del processo in sospeso.

    3. Se l'elenco contiene una o più esecuzioni, ne viene selezionata una.

    4. Chiama l'API MQTT DescribeJobExecution per ottenere il documento di processo e altri dettagli, inclusi gli stati salvati in statusDetails.

    5. Viene chiamata l'API MQTT UpdateJobExecution per aggiornare lo stato del processo. Se il campo includeJobDocument è impostato su true in questo comando, il dispositivo può ignorare la fase precedente e recuperare il documento del processo da questo punto.

    6. Se lo desideri, puoi aggiungere un timer della fase impostando un valore per stepTimeoutInMinutes quando richiami UpdateJobExecution.

    7. Vengono eseguite le operazioni specificate dal documento del processo usando l'API MQTT UpdateJobExecution per segnalare lo stato del processo.

    8. Continua a monitorare l'esecuzione del processo chiamando l'API MQTT DescribeJobExecution con questo jobId. Se l'esecuzione del processo viene annullata o eliminata mentre il dispositivo sta eseguendo il processo, il dispositivo dovrebbe essere in grado di effettuare il ripristino a uno stato valido.

    9. Chiama l'UpdateJobExecutionAPI MQTT al termine del processo per aggiornare lo stato del processo e per segnalare l'esito positivo o negativo.

    Se il dispositivo rimane online, riceve una notifica di tutte le esecuzioni del processo in sospeso quando una nuova esecuzione in sospeso diventa disponibile. Quando ciò si verifica, il dispositivo può continuare come descritto nella fase 2.

Se il dispositivo non è in grado di eseguire il processo, deve chiamare l'API MQTT UpdateJobExecution per aggiornare lo stato del processo in REJECTED.