Condividi tramite


Pianificare e trasmettere processi con l'interfaccia della riga di comando di Azure

Usare l'interfaccia della riga di comando di Azure per pianificare e tenere traccia dei processi che aggiornano milioni di dispositivi. Usare i processi per:

  • Aggiornare le proprietà desiderate
  • Aggiornare i tag
  • Richiamare metodi diretti

In parole povere, un processo esegue il wrapping di una di queste azioni e tiene traccia dell'avanzamento dell'esecuzione rispetto a un set di dispositivi. Una query del dispositivo gemello definisce il set di dispositivi con cui interagisce un processo. Grazie a un processo, ad esempio, un'app back-end può richiamare un metodo di riavvio in 10.000 dispositivi, specificato da una query di dispositivi gemelli e pianificato in un secondo momento. L'applicazione può quindi tenere traccia dell'avanzamento mentre ognuno dei dispositivi riceve ed esegue il metodo di riavvio.

Per altre informazioni su come i processi consentono di gestire le operazioni di gestione dei dispositivi in blocco, vedere Pianificare i processi in più dispositivi.

Nota

Le funzionalità descritte in questo articolo sono disponibili solo nel livello Standard dell'hub IoT. Per altre informazioni sui livelli Basic e Standard/Gratuito dell'hub IoT, vedere Scegliere il livello appropriato dell'hub IoT per la soluzione.

Prerequisiti

  • Interfaccia della riga di comando di Azure. È anche possibile eseguire i comandi in questo articolo usando Azure Cloud Shell, una shell interattiva dell'interfaccia della riga di comando eseguita nel browser o in un'app come Terminale Windows. Se si usa Cloud Shell, non è necessario installare alcun componente. Se si preferisce usare l'interfaccia della riga di comando in locale, è necessaria l'interfaccia della riga di comando di Azure versione 2.36 o successiva. Per trovare la versione installata, eseguire az --version. Per installare o aggiornare localmente l'interfaccia della riga di comando di Azure, vedere Installare l'interfaccia della riga di comando di Azure.

  • Un hub IoT nella sottoscrizione di Azure. Se non si ha ancora un hub, è possibile seguire la procedura descritta in Creare un hub IoT.

Pianificare un processo per richiamare un metodo diretto

È possibile usare i processi per richiamare un metodo diretto in uno o più dispositivi.

Usare il comando az iot hub job create , sostituendo i segnaposto seguenti con i valori corrispondenti. Il comando pianifica un processo che chiama un nome di metodo nei dispositivi di destinazione.

az iot hub job create --hub-name {HubName} --job-id {JobName} \
                      --job-type scheduleDeviceMethod \
                      --method-name {MethodName} --method-payload {MethodPayload} \
                      --query-condition "{DeviceQuery}"
Segnaposto Valore
{HubName} Il nome dell'hub IoT.
{JobName} Nome del processo pianificato. I nomi dei processi sono univoci, quindi scegliere un nome di processo diverso ogni volta che si esegue questo comando.
{MethodName} Nome del metodo diretto.
{MethodPayload} Qualsiasi payload da fornire al metodo diretto. Se non è necessario alcun payload, usare null.
{DeviceQuery} Query che definisce il dispositivo o i dispositivi di destinazione con il processo. Ad esempio, un singolo processo del dispositivo può usare la condizione di query seguente: deviceId = 'myExampleDevice'.

Suggerimento

Quando si pianifica un processo az iot hub job create che richiama un metodo diretto, è necessario specificare i valori sia per i parametri facoltativi --method-name che per --method-payload. Per i metodi diretti che non accettano un payload, specificare null per il parametro --method-payload.

Pianificare un processo per aggiornare le proprietà di un dispositivo gemello

È possibile usare i processi per aggiornare una proprietà desiderata del dispositivo gemello .

Usare il comando az iot hub job create , sostituendo i segnaposto seguenti con i valori corrispondenti. In questo esempio si sta pianificando un processo per impostare il valore della proprietà del gemello desiderata BuildingNo su 45 per il dispositivo simulato.

az iot hub job create --hub-name {HubName} --job-id {JobName} \
                      --job-type scheduleUpdateTwin \
                      --twin-patch '{JSONTwinPatch}' \
                      --query-condition "{DeviceQuery}"
Segnaposto Valore
{HubName} Il nome dell'hub IoT.
{JobName} Nome del processo pianificato. I nomi dei processi sono univoci, quindi scegliere un nome di processo diverso ogni volta che si esegue questo comando.
{JSONTwinPatch} Frammento JSON che si vuole usare per aggiornare le proprietà desiderate del dispositivo gemello. Ad esempio: {"properties":{"desired": {"BuildingNo": 45}}}.
{DeviceQuery} Query che definisce il dispositivo o i dispositivi di destinazione con il processo. Ad esempio, un singolo processo del dispositivo può usare la condizione di query seguente: deviceId = 'myExampleDevice'.

Informazioni su come implementare processi a livello di codice usando gli SDK di Azure IoT: Pianificare e trasmettere processi.