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à.
High-level flusso di lavoro dei comandi
Questo flusso di lavoro mostra come i dispositivi interagiscono con AWS IoT Device Management i comandi. Tutte le richieste API HTTP utilizzano le credenziali https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html Sigv4 per la firma.
Panoramica del flusso di lavoro
Crea e gestisci i comandi
Per creare e gestire i comandi per i tuoi dispositivi, procedi nel seguente modo.
-
Crea una risorsa di comando
Crea un comando dal Command Hub
o utilizzando l' CreateCommandAPI. -
Specifica il payload
Fornisci un payload in qualsiasi formato. Specificate il tipo di contenuto per garantire una 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.
-
(Facoltativo) Gestisci i comandi creati
Aggiorna il nome e la descrizione visualizzati 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.
Scegli il dispositivo di destinazione per i tuoi comandi e iscriviti agli argomenti MQTT
Scegli il tuo dispositivo di destinazione e configura gli argomenti MQTT per ricevere comandi e pubblicare risposte.
-
Scegli il dispositivo di destinazione per il tuo comando
Scegli un dispositivo bersaglio per ricevere ed eseguire il comando. Utilizza un nome Thing per i dispositivi registrati o un ID client per i dispositivi non registrati. Per ulteriori informazioni, consulta Considerazioni sul dispositivo di destinazione.
-
Configura il AWS IoT politica del dispositivo
Configura una policy IAM che concede le autorizzazioni per ricevere esecuzioni e pubblicare aggiornamenti. Vedi Policy IAM di esempio per alcuni esempi di policy.
-
Stabilisci una connessione MQTT
Connetti i dispositivi al broker di messaggi e iscriviti agli argomenti di richiesta e risposta. I dispositivi richiedono
iot:Connectl'autorizzazione. Trova l'endpoint del tuo piano dati utilizzando il comandoDescribeEndpointAPI odescribe-endpointCLI:aws iot describe-endpoint --endpoint-type iot:Data-ATSL'esecuzione di questo comando restituisce l'endpoint del piano dati specifico dell'account, come mostrato di seguito.
account-specific-prefix.iot.region.amazonaws.com -
Iscriviti agli argomenti relativi ai comandi
Iscriviti all'argomento relativo alla richiesta dei comandi. Quando avvii un'esecuzione, il broker di messaggi pubblica il payload in questo argomento. Il dispositivo riceve ed elabora il comando.
(Facoltativo) Iscriviti agli argomenti di risposta (
acceptedorejected) per ricevere conferma se il servizio cloud ha accettato o rifiutato la risposta del dispositivo.In questo esempio, sostituisci:
-
con<device>thingoclienta seconda che il dispositivo a cui ti rivolgi sia stato registrato come oggetto IoT o specificato come client MQTT. -
con l'identificatore univoco del dispositivo di destinazione. Questo ID può essere l'ID client MQTT univoco o il nome di un oggetto.<DeviceID>
Nota
Se il tipo di payload non è JSON o CBOR, il
<PayloadFormat>campo potrebbe non essere presente nell'argomento della 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 dei 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 eseguendo i passaggi seguenti.
-
Avvia l'esecuzione del comando sul dispositivo di destinazione
Avvia l'esecuzione dal Command Hub
o utilizzando l' StartCommandExecutionAPI con l'endpoint specifico del tuo account. Utilizzalo soloiot:Data-ATSper dual-stack (IPv4/IPv6) o per IPv4.iot:JobsL'API pubblica il Payload nell'argomento Commands request.
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, l'esecuzione scade e il payload verrà scartato.
-
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
UpdateCommandExecutionMQTT. Se si è abbonato agli argomenti accettati e rifiutati, il dispositivo riceve la conferma se il servizio cloud ha accettato o rifiutato la risposta.A seconda di quanto specificato nell'argomento della richiesta,
<devices>possono essere oggetti o client e<DeviceID>può essere il nome dell' AWS IoT oggetto o l'ID del client MQTT.Nota
<PayloadFormat>Può essere solo JSON o CBOR nell'argomento di risposta ai comandi.$aws/commands/<devices>/<DeviceID>/executions/<ExecutionId>/response/<PayloadFormat> -
(Facoltativo) Recupera il risultato dell'esecuzione del comando
Recupera i risultati dell'esecuzione dalla AWS IoT console o utilizzando.
GetCommandExecutionIl dispositivo deve pubblicare i risultati nell'argomento di risposta ai comandi per le informazioni più recenti. Visualizza dettagli aggiuntivi, tra cui ora dell'ultimo aggiornamento, risultato e 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. Per informazioni dettagliate sugli eventi di esecuzione dei comandi, inclusi il formato del messaggio di evento e gli attributi del payload, vedereEventi di esecuzione dei comandi.
-
Creazione di una regola dell'argomento
Iscriviti all'argomento Commands events per le 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 oCreare un AWS IoT regola.
In questo esempio,
sostituiscila con l'identificatore del comando per il quale desideri ricevere notifiche e<CommandID>con lo stato dell'esecuzione del comando.<CommandExecutionStatus>$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 l'argomento seguente.
$aws/events/commandExecution/+/# -
Eventi di ricezione ed elaborazione dei comandi
Gestisci le notifiche push dei comandi e crea applicazioni utilizzando gli eventi sottoscritti.
Il codice seguente mostra un esempio di payload per le notifiche degli eventi dei comandi 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}