Come usare i criteri di allocazione per effettuare il provisioning dei dispositivi tra hub IoT

hub IoT di Azure servizio Device Provisioning supporta diversi criteri di allocazione predefiniti che determinano come assegna i dispositivi in uno o più hub IoT. Il servizio Device Provisioning include anche il supporto per i criteri di allocazione personalizzati, che consentono di creare e usare criteri di allocazione personalizzati quando lo scenario IoT richiede funzionalità non fornite dai criteri predefiniti.

Questo articolo illustra come usare e gestire i criteri di allocazione dps.

Informazioni sui criteri di allocazione

I criteri di allocazione determinano il modo in cui dps assegna i dispositivi a un hub IoT. Ogni istanza del servizio Device Provisioning ha un criterio di allocazione predefinito, ma questo criterio può essere sottoposto a override da un criterio di allocazione impostato in una registrazione. Solo gli hub IoT collegati all'istanza del servizio Device Provisioning possono partecipare all'allocazione. Se un hub IoT collegato parteciperà all'allocazione dipende dalle impostazioni della registrazione di cui effettua il provisioning di un dispositivo.

Dps supporta quattro criteri di allocazione:

  • Distribuzione ponderata in modo uniforme: viene effettuato il provisioning dei dispositivi in un hub IoT usando un hash ponderato. Per impostazione predefinita, gli hub IoT collegati hanno la stessa impostazione di peso di allocazione, quindi è probabile che i dispositivi abbiano effettuato il provisioning. Il peso di allocazione di un hub IoT può essere modificato per aumentare o ridurre la probabilità di assegnazione. La distribuzione ponderata in modo uniforme è il criterio di allocazione predefinito per un'istanza del servizio Device Provisioning. Se si esegue il provisioning dei dispositivi in un solo hub IoT, è consigliabile usare questo criterio.

  • Latenza più bassa: viene effettuato il provisioning dei dispositivi nell'hub IoT con la latenza più bassa per il dispositivo. Se più hub IoT forniscono la latenza più bassa, il servizio Device Provisioning esegue l'hashing dei dispositivi in tali hub in base al peso di allocazione configurato.

  • Configurazione statica: viene effettuato il provisioning dei dispositivi in un singolo hub IoT, che deve essere specificato nella registrazione.

  • Personalizzato (usare la funzione di Azure): un criterio di allocazione personalizzato offre un maggiore controllo sulla modalità di assegnazione dei dispositivi a un hub IoT. Questa operazione viene eseguita usando un webhook personalizzato ospitato in Funzioni di Azure per assegnare i dispositivi a un hub IoT. Dps chiama il webhook fornendo tutte le informazioni pertinenti sul dispositivo e la registrazione. Il webhook restituisce l'hub IoT e il dispositivo gemello iniziale (facoltativo) usato per effettuare il provisioning del dispositivo. I payload personalizzati possono anche essere passati da e verso il dispositivo. Per altre informazioni, vedere Informazioni sui criteri di allocazione personalizzati. Non è possibile impostare come criterio predefinito dell'istanza del servizio Device Provisioning.

Nota

L'elenco precedente mostra i nomi dei criteri di allocazione visualizzati nella portale di Azure. Quando si impostano i criteri di allocazione usando l'API REST dps, l'interfaccia della riga di comando di Azure e gli SDK del servizio DPS, vengono definiti come hash, geolatenza, statica e personalizzata.

Esistono due impostazioni in un hub IoT collegato che controllano la modalità di partecipazione all'allocazione:

  • Peso allocazione: imposta il peso che l'hub IoT avrà quando partecipa ai criteri di allocazione che coinvolgono più hub IoT. Può essere un valore compreso tra uno e 1000. Il valore predefinito è uno (o null).

    • Con i criteri di allocazione della distribuzione ponderata uniforme, gli hub IoT con valori di peso di allocazione più elevati hanno una maggiore probabilità di essere selezionati rispetto a quelli con valori di peso inferiore.

    • Con i criteri di allocazione della latenza più bassa, il valore del peso di allocazione influirà sulla probabilità di selezionare un hub IoT quando più di un hub IoT soddisfa il requisito di latenza più basso.

    • Con un criterio di allocazione personalizzato , se e come viene usato il valore del peso di allocazione dipenderà dalla logica del webhook.

  • Applica criteri di allocazione: specifica se l'hub IoT partecipa ai criteri di allocazione. Il valore predefinito è (true). Se impostato su No (false), i dispositivi non verranno assegnati all'hub IoT. L'hub IoT può comunque essere selezionato in una registrazione, ma non parteciperà all'allocazione. È possibile usare questa impostazione per rimuovere temporaneamente o definitivamente un hub IoT dalla partecipazione all'allocazione; ad esempio, se sta raggiungendo il numero consentito di dispositivi.

Per altre informazioni sul collegamento e sulla gestione degli hub IoT nell'istanza del servizio Device Provisioning, vedere Collegare e gestire hub IoT.

Quando un dispositivo esegue il provisioning tramite DPS, il servizio lo assegna a un hub IoT in base alle linee guida seguenti:

  • Se la registrazione specifica un criterio di allocazione, usare tale criterio; in caso contrario, usare i criteri di allocazione predefiniti per l'istanza del servizio Device Provisioning.

  • Se la registrazione specifica uno o più hub IoT, applicare i criteri di allocazione in tali hub IoT; in caso contrario, applicare i criteri di allocazione in tutti gli hub IoT collegati all'istanza del servizio Device Provisioning. Si noti che se i criteri di allocazione sono configurazione statica, la registrazione deve specificare un hub IoT.

Importante

Quando si modificano i criteri di allocazione o gli hub IoT a cui si applica, le modifiche influiscono solo sulle registrazioni successive del dispositivo. I dispositivi di cui è già stato effettuato il provisioning in un hub IoT non saranno interessati. Se vuoi che le modifiche vengano applicate in modo retroattivo a questi dispositivi, dovrai eseguirne nuovamente il provisioning. Per altre informazioni, vedere Come effettuare il reprovisioning dei dispositivi.

Impostare i criteri di allocazione predefiniti per l'istanza del servizio Device Provisioning

I criteri di allocazione predefiniti per l'istanza del servizio Device Provisioning vengono usati quando un criterio di allocazione non viene specificato in una registrazione. Solo la distribuzione ponderata in modo uniforme, la latenza minima e la configurazione statica sono supportate per i criteri di allocazione predefiniti. L'allocazione personalizzata non è supportata. Quando viene creata un'istanza dps, i criteri predefiniti vengono impostati automaticamente su Distribuzione ponderata uniforme.

Nota

Se si imposta la configurazione statica come criterio di allocazione predefinito per un'istanza del servizio Device Provisioning, è necessario specificare un hub IoT collegato nelle registrazioni che si basano sui criteri predefiniti.

Usare il portale di Azure per impostare i criteri di allocazione predefiniti

Per impostare i criteri di allocazione predefiniti per l'istanza del servizio Device Provisioning nella portale di Azure:

  1. Nel menu a sinistra dell'istanza del servizio Device Provisioning selezionare Gestisci criteri di allocazione.

  2. Selezionare il pulsante per i criteri di allocazione da impostare: latenza minima, distribuzione ponderata in modo uniforme o Configurazione statica. L'allocazione personalizzata non è supportata per i criteri di allocazione predefiniti.

  3. Seleziona Salva.

Usare l'interfaccia della riga di comando di Azure per impostare i criteri di allocazione predefiniti

Usare il comando az iot dps update dell'interfaccia della riga di comando di Azure per impostare i criteri di allocazione predefiniti per l'istanza del servizio Device Provisioning. --set properties.allocationPolicy Usare per specificare i criteri. Ad esempio, il comando seguente imposta i criteri di allocazione su Distribuzione ponderata uniforme (impostazione predefinita):

az iot dps update --name MyExampleDps --set properties.allocationPolicy=hashed

Dps supporta anche l'impostazione dei criteri di allocazione predefiniti usando l'API REST crea o aggiorna la risorsa DPS, i modelli di Resource Manager e gli SDK di gestione dps.

Impostare i criteri di allocazione e gli hub IoT per le registrazioni

Le registrazioni e i gruppi di registrazione singoli possono specificare un criterio di allocazione e gli hub IoT collegati a cui applicare. Se non viene specificato alcun criterio di allocazione dalla registrazione, vengono usati i criteri di allocazione predefiniti per l'istanza del servizio Device Provisioning.

In entrambi i casi, si applicano le condizioni seguenti:

  • Per la distribuzione ponderata uniforme, la latenza minima e i criteri di allocazione personalizzati , la registrazione può specificare quali hub IoT collegati devono essere usati. Se nella registrazione non sono selezionati hub IoT, verranno usati tutti gli hub IoT collegati nell'istanza del servizio Device Provisioning.

  • Per la configurazione statica, la registrazione deve specificare un singolo hub IoT dall'elenco di hub IoT collegati.

Per le registrazioni individuali e i gruppi di registrazione, è possibile specificare un criterio di allocazione e gli hub IoT collegati a cui applicarli quando si crea o si aggiorna una registrazione.

Usare il portale di Azure per gestire i criteri di allocazione della registrazione e gli hub IoT

Per impostare i criteri di allocazione e selezionare Hub IoT in una registrazione nel portale di Azure:

  1. Nel menu a sinistra dell'istanza del servizio Device Provisioning selezionare Gestisci registrazioni.

  2. Nella pagina Gestisci registrazioni :

    • Per creare una nuova registrazione, selezionare la scheda Gruppi di registrazione o Registrazioni singole e quindi selezionare Aggiungi gruppo di registrazione o Aggiungi registrazione singola.

    • Per aggiornare una registrazione esistente, selezionarla dall'elenco nella scheda Gruppi di registrazioni o Registrazioni singole.

  3. Nella pagina Aggiungi registrazione (in creazione) o nella pagina Dettagli registrazione (in aggiornamento) selezionare la scheda Hub IoT. In questa scheda è possibile selezionare i criteri di allocazione da applicare alla registrazione e selezionare gli hub IoT da usare:

    Screenshot that shows the allocation policy and selected hubs settings on IoT hubs tab.

    1. Selezionare gli hub IoT a cui è possibile assegnare i dispositivi dall'elenco a discesa. Se si selezionano i criteri di allocazione della configurazione statica, sarà possibile selezionare un singolo hub IoT collegato. Per tutti gli altri criteri di allocazione, tutti gli hub IoT collegati verranno selezionati per impostazione predefinita, ma è possibile modificare questa selezione usando l'elenco a discesa. Per fare in modo che la registrazione usi automaticamente hub IoT collegati man mano che vengono aggiunti (o eliminati) dall'istanza dps, deselezionare tutti gli hub IoT.

    2. Facoltativamente, è possibile selezionare il pulsante Collega un nuovo hub IoT per collegare un nuovo hub IoT all'istanza del servizio Device Provisioning e renderlo disponibile nell'elenco di hub IoT che è possibile selezionare. Per informazioni dettagliate sul collegamento di un hub IoT, vedere Collegare un hub IoT.

    3. Selezionare i criteri di allocazione da applicare alla registrazione. I criteri di allocazione predefiniti per l'istanza dps sono selezionati per impostazione predefinita. Per l'allocazione personalizzata, è anche necessario specificare un webhook dei criteri di allocazione personalizzato in Funzioni di Azure. Per informazioni dettagliate, vedere l'esercitazione Usare criteri di allocazione personalizzati.

  4. Impostare tutte le altre proprietà necessarie per la registrazione e quindi salvare le impostazioni.

Usare l'interfaccia della riga di comando di Azure per gestire i criteri di allocazione della registrazione e gli hub IoT

Usare il comando az iot dps enrollment create, az iot dps enrollment update, az iot dps enrollment-group create, az iot dps enrollment-group update dell'interfaccia della riga di comando di Azure per creare o aggiornare singole registrazioni o gruppi di registrazione.

Ad esempio, il comando seguente crea un gruppo di registrazione con chiave simmetrica che usa per impostazione predefinita i criteri di allocazione predefiniti impostati nell'istanza del servizio Device Provisioning e tutti gli hub IoT collegati all'istanza del servizio Device Provisioning:

az iot dps enrollment-group create --dps-name MyExampleDps --enrollment-id MyEnrollmentGroup 

Il comando seguente aggiorna lo stesso gruppo di registrazioni per usare i criteri di allocazione latenza più bassa con hub IoT denominati MyExampleHub e MyExampleHub-2:

az iot dps enrollment-group update --dps-name MyExampleDps --enrollment-id MyEnrollmentGroup --allocation-policy geolatency --iot-hubs "MyExampleHub.azure-devices.net MyExampleHub-2.azure-devices.net"

DPS supporta anche l'impostazione dei criteri di allocazione e degli hub IoT selezionati nella registrazione usando le API REST Create or Update individual enrollment e Create or Update enrollment group REST API (Creare o aggiornare le API REST del gruppo di registrazione) e gli SDK del servizio DPS.

Comportamento di allocazione

Si noti il comportamento seguente quando si usano i criteri di allocazione con l'hub IoT:

  • Con l'interfaccia della riga di comando di Azure, l'API REST e gli SDK del servizio DPS, è possibile creare registrazioni senza criteri di allocazione. In questo caso, dps usa i criteri predefiniti per l'istanza del servizio Device Provisioning quando un dispositivo esegue il provisioning tramite la registrazione. La modifica dell'impostazione dei criteri predefinita nell'istanza del servizio Device Provisioning cambierà la modalità di provisioning dei dispositivi tramite la registrazione.

  • Con il portale di Azure, l'impostazione dei criteri di allocazione per la registrazione viene precompilato con i criteri di allocazione predefiniti. È possibile mantenere questa impostazione o modificarla in un altro criterio, ma, quando si salva la registrazione, i criteri di allocazione vengono impostati nella registrazione. Le modifiche successive ai criteri di allocazione predefinita del servizio non modificheranno la modalità di provisioning dei dispositivi tramite la registrazione.

  • Per la distribuzione ugualmente ponderata, la latenza minima e i criteri di allocazione personalizzati è possibile configurare la registrazione per l'uso di tutti gli hub IoT collegati all'istanza del servizio Device Provisioning:

    • Con l'interfaccia della riga di comando di Azure e gli SDK del servizio DPS, creare la registrazione senza specificare hub IoT.

    • Con il portale di Azure, la registrazione viene prepopolato con tutti gli hub IoT collegati all'istanza del servizio Device Provisioning selezionata. Deselezionare tutti gli hub IoT prima di salvare la registrazione.

    Se non viene selezionato alcun hub IoT nella registrazione, ogni volta che un nuovo hub IoT è collegato all'istanza del servizio Device Provisioning, partecipa all'allocazione; e viceversa per un hub IoT rimosso dall'istanza del servizio Device Provisioning.

  • Se si specificano hub IoT in una registrazione, l'impostazione degli hub IoT nella registrazione deve essere aggiornata manualmente o a livello di codice per aggiungere un hub IoT appena collegato o eliminare un hub IoT eliminato dall'allocazione.

  • La modifica dei criteri di allocazione o degli hub IoT usati per una registrazione influisce solo sulle registrazioni successive tramite tale registrazione. Se si desidera che le modifiche influiscano sulle registrazioni precedenti, sarà necessario eseguire nuovamente il provisioning di tutti i dispositivi registrati in precedenza.

Limiti

Esistono alcune limitazioni quando si riguardano i criteri di allocazione e gli endpoint privati. Per altre informazioni, vedere Limitazioni dell'endpoint privato.

Passaggi successivi