Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Comandi, concetti e stato.

Modalità Focus
Comandi, concetti e stato. - 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à.

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

Usa AWS IoT i comandi per inviare un'istruzione dal cloud a un dispositivo a cui è connesso AWS IoT. Per utilizzare la funzionalità dei comandi:

  1. Innanzitutto, create una risorsa di comando con un payload che contenga le configurazioni necessarie per eseguire il comando sul dispositivo.

  2. Specificate il dispositivo di destinazione che riceverà il payload ed eseguirà le azioni specificate.

  3. Esegui il comando sul dispositivo di destinazione e recupera le informazioni sullo stato dal dispositivo. Per risolvere eventuali problemi, consulta i registri. CloudWatch

Per ulteriori informazioni su questo flusso di lavoro, consulta Flusso di lavoro con comandi di alto livello.

Comandi, concetti chiave.

Di seguito vengono illustrati alcuni concetti chiave per l'utilizzo della funzionalità dei comandi.

Comandi

I comandi sono istruzioni inviate dal cloud ai dispositivi IoT. Queste istruzioni (comando payload) vengono inviate ai dispositivi come MQTT messaggi. Dopo aver ricevuto il comando payload, i dispositivi possono elaborare le istruzioni per eseguire l'azione corrispondente. Esempi di tali azioni includono la modifica delle impostazioni di configurazione del dispositivo, la trasmissione delle letture dei sensori o il caricamento dei registri. I dispositivi possono quindi eseguire il comando e restituire il risultato al cloud. Ciò consente di monitorare e controllare in remoto i dispositivi collegati.

Spazio dei nomi

Quando si utilizza la funzionalità dei comandi, è possibile specificare lo spazio dei nomi per il comando. Quando si desidera creare un comando in AWS IoT Device Management, è necessario utilizzare lo spazio dei nomi predefinitoAWS-IoT. Quando si utilizza questo spazio dei nomi, è necessario fornire un payload durante la creazione del comando. Il payload verrà utilizzato quando si esegue il comando sul dispositivo di destinazione. Se invece si desidera creare un comando per, è necessario utilizzare AWS IoT FleetWise invece lo AWS-IoT-FleetWise spazio dei nomi. Per ulteriori informazioni, consulta Comandi remoti nella guida per AWS IoT FleetWise sviluppatori per i comandi.

Carico utile

Quando si crea il comando, è necessario fornire un payload che definisca le azioni che il dispositivo deve eseguire. Il payload può utilizzare qualsiasi formato di tua scelta. Per assicurarti che il dispositivo sia in grado di leggere e comprendere correttamente le informazioni che stai inviando, ti consigliamo di specificare il tipo di formato del payload nel comando. Se i tuoi dispositivi lo utilizzanoMQTT5, possono seguire MQTT lo standard per identificare il formato del payload. Un indicatore di formato per JSON o CBOR sarà disponibile nell'argomento relativo alla richiesta dei comandi.

Dispositivo di destinazione

Quando si desidera eseguire il comando, è necessario specificare un dispositivo di destinazione che riceverà il comando ed eseguirà azioni. Se il dispositivo è stato registrato come oggetto con AWS IoT, è possibile utilizzare il nome dell'oggetto. Se il dispositivo non è stato registrato, puoi invece utilizzare l'ID MQTT cliente. L'ID client è un identificatore univoco per il dispositivo o il client definito nel MQTT protocollo. Può essere usato per connettere il dispositivo a AWS IoT.

Esecuzione del comando

L'esecuzione di un comando è un'istanza di un comando che viene eseguito sul dispositivo di destinazione. Quando si avvia l'esecuzione, il comando (payload) viene inviato al dispositivo di destinazione. Viene ora generato un ID di esecuzione del comando univoco per la destinazione. Il dispositivo può quindi eseguire il comando e segnalarne l'avanzamento a AWS IoT. La logica lato dispositivo determina come verrà eseguito il comando e come lo stato verrà pubblicato negli argomenti riservati.

Argomenti sui comandi

Prima di eseguire il comando, il dispositivo deve aver sottoscritto l'argomento relativo alla richiesta dei comandi. Quando invii la richiesta al cloud per eseguire il comando, il payload verrà inviato al dispositivo nell'argomento relativo alla richiesta dei comandi. Dopo aver eseguito il comando, il dispositivo può pubblicare il risultato e lo stato dell'esecuzione nell'argomento di risposta ai comandi. Per ulteriori informazioni, consulta Argomenti sui comandi.

Stati del comando

Un comando creato in your Account AWS può essere in uno stato Disponibile, Obsoleto o In sospeso.

Disponibilità

Dopo aver creato correttamente una risorsa di comando, questa sarà in uno stato disponibile. Il comando può ora essere usato per inviare l'esecuzione di un comando al dispositivo.

Deprecated

Se non intendi più utilizzare un comando, puoi contrassegnarlo come obsoleto. In questo stato, non è possibile inviare nuove esecuzioni del comando ai dispositivi. Tutte le esecuzioni in sospeso che erano già iniziate continueranno a essere eseguite sul dispositivo fino al completamento. Per inviare nuove esecuzioni, è necessario ripristinare il comando in modo che diventi disponibile.

In attesa di eliminazione

Quando contrassegni un comando per l'eliminazione, se il comando è obsoleto per un periodo superiore al timeout massimo, il comando verrà eliminato automaticamente. Questa azione è permanente e non può essere annullata. Per impostazione predefinita, la durata massima del timeout è di 12 ore. Se il comando non è obsoleto o lo è stato per un periodo inferiore al timeout massimo, il comando sarà in stato di eliminazione in sospeso. Il comando verrà rimosso automaticamente dal tuo account dopo la durata massima del timeout.

Stato di esecuzione del comando

Quando si avvia l'esecuzione del comando sul dispositivo di destinazione, l'esecuzione del comando entra in uno CREATED stato. Può quindi passare a uno qualsiasi degli altri stati di esecuzione del comando a seconda dello stato riportato dal dispositivo. È quindi possibile recuperare le informazioni sullo stato e tenere traccia delle esecuzioni dei comandi.

Nota

Per un determinato dispositivo di destinazione, è possibile eseguire più comandi contemporaneamente. È possibile utilizzare la funzionalità di controllo della concorrenza per limitare il numero massimo di esecuzioni inviate allo stesso dispositivo, evitando così il sovraccarico del dispositivo. Per informazioni sul numero massimo di esecuzioni simultanee che è possibile eseguire per ogni dispositivo, consulta commands quotas.AWS IoT Device Management

La tabella seguente mostra i diversi stati dell'esecuzione di un comando e il modo in cui l'esecuzione del comando passa tra i vari stati a seconda dell'avanzamento dell'esecuzione.

Stato e origine dell'esecuzione del comando
Stato di esecuzione del comando Avviato dal dispositivo/cloud? Esecuzione del terminale? Transizioni di stato consentite
CREATED Cloud No
  • IN_ PROGRESS

  • SUCCEEDED

  • FAILED

  • REJECTED

  • TIMED_OUT

IN_PROGRESS Dispositivo No
  • IN_ PROGRESS

  • SUCCEEDED

  • FAILED

  • REJECTED

  • TIMED_OUT

TIMED_OUT Dispositivo e cloud No
  • SUCCEEDED

  • FAILED

  • REJECTED

  • TIMED_OUT

SUCCEEDED Dispositivo Non applicabile
FAILED Dispositivo Non applicabile
REJECTED Dispositivo Non applicabile

Man mano che i dispositivi eseguono il comando, questi possono pubblicare aggiornamenti sullo stato e sui risultati in qualsiasi momento sul cloud utilizzando gli MQTT argomenti riservati dei comandi. Per fornire un contesto aggiuntivo sullo stato di ogni esecuzione di comando nel cloud, può utilizzare reasonDescription gli reasonCode e contenuti all'interno dell'statusReasonoggetto.

Il diagramma seguente mostra i vari stati di esecuzione dei comandi e come avviene la transizione tra di essi.

Immagine che mostra come lo stato di esecuzione di un comando passa da uno stato all'altro.

La sezione seguente descrive le esecuzioni di comandi terminali e non terminali, i vari stati di esecuzione e il relativo funzionamento.

Esecuzioni di comandi non terminali

L'esecuzione del comando non è terminale se l'esecuzione può accettare aggiornamenti da dispositivi o client. Un'esecuzione in uno stato non terminale è considerata attiva. I seguenti stati non sono terminali.

  • CREATED

    Quando si avvia l'esecuzione di un comando dalla AWS IoT console o si utilizza il StartCommandExecution API per inviare il comando al dispositivo utilizzando l'argomento relativo alla richiesta di comandi. Se la richiesta ha esito positivo, lo stato di esecuzione del comando cambia inCREATED. Da questo stato, l'esecuzione del comando può passare a uno qualsiasi degli altri stati non terminali o terminali.

  • IN_ PROGRESS

    Dopo aver ricevuto il comando payload, il dispositivo può iniziare a eseguire le istruzioni nel payload ed eseguire le azioni specificate. Durante l'esecuzione del comando, il dispositivo può pubblicare una risposta all'argomento relativo alla risposta ai comandi e aggiornare lo stato di esecuzione del comando come. IN_PROGRESS Dallo IN_PROGRESS status, l'esecuzione del comando può passare a uno qualsiasi degli altri stati terminali o non terminali diversi da. CREATED

    Nota

    UpdateCommandExecutionAPIPuò essere richiamato più volte con uno stato di. IN_PROGRESS È possibile specificare dettagli aggiuntivi sull'esecuzione utilizzando l'statusReasonoggetto.

  • TIMED_OUT

    Questo stato di esecuzione del comando può essere attivato sia dal cloud che dal dispositivo. IN_PROGRESSLo stato di esecuzione in CREATED o in corso può passare allo TIMED_OUT stato attuale per i seguenti motivi.

    • Dopo l'invio del comando al dispositivo, viene avviato un timer. Se non viene ricevuta alcuna risposta dal dispositivo entro una durata specificata, il cloud modifica lo stato di esecuzione del comando inTIMED_OUT. In questo caso, l'esecuzione del comando non è terminale.

    • Il dispositivo può sostituire lo stato con uno qualsiasi degli altri stati del terminale o segnalare che si è verificato un timeout durante l'esecuzione del comando e impostare lo stato su. TIMED_OUT In questo caso, lo stato di esecuzione rimane invariato TIMED_OUT ma i campi dell'StatusReasonoggetto cambiano a seconda delle informazioni riportate dai dispositivi. L'esecuzione del comando ora diventa terminale.

    Per ulteriori informazioni, consulta Valore del timeout e stato di TIMED_OUT esecuzione.

Esecuzioni di comandi da terminale

L'esecuzione di un comando diventa terminale se l'esecuzione non accetta più aggiornamenti aggiuntivi dai dispositivi. I seguenti stati sono terminali. Un'esecuzione può passare allo stato del terminale da uno qualsiasi degli stati non terminali,, CREATED o. IN_PROGRESS TIMED_OUT

  • SUCCEEDED

    Se il dispositivo ha completato con successo l'esecuzione del comando, può pubblicare una risposta all'argomento relativo alla risposta ai comandi e aggiornare lo stato di esecuzione del comando a. SUCCEEDED

  • FAILED

    Quando il dispositivo non riesce a completare l'esecuzione del comando, può pubblicare una risposta all'argomento relativo alla risposta ai comandi e aggiornare lo stato di esecuzione del comando aFAILED. È possibile utilizzare i reasonDescription campi reasonCode e dell'statusReasonoggetto o CloudWatch i registri per risolvere ulteriormente gli errori.

  • REJECTED

    Quando il dispositivo riceve una richiesta non valida o incompatibile, può richiamarla con uno stato di. UpdateCommandExecution API REJECTED È possibile utilizzare i reasonDescription campi reasonCode e dell'statusReasonoggetto o i CloudWatch registri per risolvere ulteriormente eventuali problemi.

Argomento successivo:

Workflow dei comandi

Argomento precedente:

Comandi
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.