Flusso di lavoro dei comandi di alto livello - 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 comandi di alto livello

Questo flusso di lavoro mostra come i dispositivi interagiscono con AWS IoT Device Management i comandi. Tutte le richieste API HTTP utilizzano le credenziali Sigv4 per la firma.

Panoramica del flusso di lavoro di alto livello per i comandi AWS IoT Device Management del dispositivo.

Crea e gestisci i comandi

Per creare e gestire i comandi per i tuoi dispositivi, procedi nel seguente modo.

  1. Crea una risorsa di comando

    Crea un comando dal Command Hub o utilizzando l'CreateCommandAPI.

  2. Specificare il payload

    Fornisci un payload in qualsiasi formato. Specificate il tipo di contenuto per garantire la corretta interpretazione del dispositivo.

    Per i comandi dinamici con modelli di payload, il payload finale viene generato in fase di esecuzione utilizzando i parametri forniti. I modelli supportano solo il formato JSON, ma il payload generato può essere inviato come JSON o CBOR.

  3. (Facoltativo) Gestisci i comandi creati

    Aggiorna il nome visualizzato e la descrizione dopo la creazione. Contrassegna i comandi come obsoleti quando non sono più necessari o eliminali definitivamente. Per modificare le informazioni sul payload, crea un nuovo comando.

Scegliete il dispositivo di destinazione per i vostri comandi e iscrivetevi agli argomenti MQTT

Scegli il tuo dispositivo di destinazione e configura gli argomenti MQTT per ricevere comandi e pubblicare risposte.

  1. Scegli il dispositivo di destinazione per il tuo comando

    Scegli un dispositivo di destinazione per ricevere ed eseguire il comando. Usa un nome oggetto per i dispositivi registrati o un ID client per i dispositivi non registrati. Per ulteriori informazioni, consulta Considerazioni sul dispositivo di destinazione.

  2. Configura la politica del AWS IoT dispositivo

    Configura una policy IAM che concede le autorizzazioni per ricevere esecuzioni e pubblicare aggiornamenti. Vedi alcuni esempi di Policy IAM di esempio policy.

  3. Stabilire una connessione MQTT

    Connect i dispositivi al broker di messaggi e sottoscrivi gli argomenti di richiesta e risposta. I dispositivi richiedono iot:Connect l'autorizzazione. Trova l'endpoint del tuo piano dati utilizzando il comando DescribeEndpoint API o describe-endpoint CLI:

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

    L'esecuzione di questo comando restituisce l'endpoint del piano dati specifico dell'account come illustrato di seguito.

    account-specific-prefix.iot.region.amazonaws.com
  4. Iscriviti agli argomenti relativi ai comandi

    Sottoscrivi l'argomento relativo alla richiesta dei comandi. Quando si avvia un'esecuzione, il broker di messaggi pubblica il payload relativo a questo argomento. Il dispositivo riceve ed elabora il comando.

    (Facoltativo) Iscriviti agli argomenti di risposta (acceptedorejected) per ricevere la conferma se il servizio cloud ha accettato o rifiutato la risposta del dispositivo.

    In questo esempio, sostituisci:

    • <device>con thing o client a seconda che il dispositivo scelto come target sia stato registrato come oggetto IoT o specificato come client MQTT.

    • <DeviceID>con l'identificatore univoco del dispositivo bersaglio. Questo ID può essere l'ID univoco del client MQTT o il nome di un oggetto.

    Nota

    Se il tipo di payload non è JSON o CBOR, il <PayloadFormat> campo potrebbe non essere presente nell'argomento relativo alla richiesta dei comandi. Per ottenere il formato del payload, si consiglia di utilizzare MQTT5 per ottenere le informazioni sul formato dalle intestazioni dei messaggi MQTT. Per ulteriori informazioni, consulta Argomenti sui comandi.

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

Avvia e monitora le esecuzioni dei comandi per il dispositivo di destinazione

Dopo aver creato i comandi e specificato le destinazioni per il comando, è possibile avviare l'esecuzione sul dispositivo di destinazione effettuando le seguenti operazioni.

  1. Avvia l'esecuzione del comando sul dispositivo di destinazione

    Avvia l'esecuzione da Command Hub o utilizza l'StartCommandExecutionAPI con l'endpoint specifico del tuo account. Utilizzalo iot:Data-ATS per dual-stack (IPv4/) o solo per. IPv6 iot:Jobs IPv4

    L'API pubblica il payload nell'argomento di richiesta dei comandi.

    Nota

    Se il dispositivo è offline e utilizza sessioni permanenti MQTT, il comando attende il broker di messaggi. Quando il dispositivo si riconnette prima del timeout, può elaborare il comando e pubblicare i risultati. Se il timeout scade, il timeout di esecuzione scade e il payload verrà scartato.

  2. Aggiorna il risultato dell'esecuzione del comando

    Il dispositivo riceve il payload, elabora il comando, esegue le azioni specificate e pubblica i risultati nell'argomento di risposta ai comandi utilizzando l'API basata su UpdateCommandExecution MQTT. Se è abbonato agli argomenti accettati e rifiutati, il dispositivo riceve la conferma se il servizio cloud ha accettato o rifiutato la risposta.

    A seconda di ciò che hai specificato nell'argomento della richiesta, <devices> possono essere oggetti o client e <DeviceID> può essere il nome dell'AWS IoToggetto o l'ID del client MQTT.

    Nota

    Nell'argomento di risposta ai comandi <PayloadFormat> possono essere solo JSON o CBOR.

    $aws/commands/<devices>/<DeviceID>/executions/<ExecutionId>/response/<PayloadFormat>
  3. (Facoltativo) Recupera il risultato dell'esecuzione del comando

    Recupera i risultati dell'esecuzione dalla AWS IoT console o utilizzando. GetCommandExecution Il dispositivo deve pubblicare i risultati nell'argomento di risposta ai comandi per le informazioni più recenti. Visualizza dettagli aggiuntivi tra cui l'ora dell'ultimo aggiornamento, il risultato e l'ora di completamento.

(Facoltativo) Abilita le notifiche per gli eventi dei comandi

Iscriviti agli eventi Commands per ricevere notifiche quando lo stato di esecuzione cambia.

  1. Creazione di una regola dell'argomento

    Iscriviti all'argomento Commands events per ricevere notifiche di modifica dello stato. Crea una regola tematica per indirizzare i dati del dispositivo ad altri AWS IoT servizi come AWS Lambda Amazon SQS e AWS Step Functions utilizzando la AWS IoT console o. Creazione di una AWS IoT regola

    In questo esempio, <CommandID> sostituiscilo con l'identificatore del comando per il quale desideri ricevere notifiche e <CommandExecutionStatus> con lo stato dell'esecuzione del comando.

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

    Per ricevere notifiche per tutti i comandi e gli stati di esecuzione dei comandi, è possibile utilizzare caratteri jolly e sottoscrivere il seguente argomento.

    $aws/events/commandExecution/+/#
  2. Ricevi ed elabora gli eventi dei comandi

    Gestisci i comandi, invia notifiche push e crea applicazioni utilizzando gli eventi sottoscritti.

Il codice seguente mostra un payload di esempio per le notifiche di comandi ed eventi che riceverai.

{ "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 }