Come collegare e gestire hub IoT

hub IoT di Azure servizio Device Provisioning (DPS) può effettuare il provisioning dei dispositivi in uno o più hub IoT. Prima che dps possa effettuare il provisioning dei dispositivi in un hub IoT, deve essere collegato all'istanza del servizio Device Provisioning. Una volta collegato, un hub IoT può essere usato in un criterio di allocazione. I criteri di allocazione determinano il modo in cui i dispositivi vengono assegnati agli hub IoT dal servizio Device Provisioning. Questo articolo fornisce istruzioni su come collegare gli hub IoT e gestirli nell'istanza del servizio Device Provisioning.

Hub IoT collegati e criteri di allocazione

Il servizio Device Provisioning può effettuare il provisioning dei dispositivi solo agli hub IoT collegati. Il collegamento di un hub IoT a un'istanza dps concede al servizio le autorizzazioni di lettura/scrittura per il registro dei dispositivi dell'hub IoT. Con queste autorizzazioni, dps può registrare un ID dispositivo e impostare la configurazione iniziale nel dispositivo gemello. Gli hub IoT collegati possono trovarsi in qualsiasi area di Azure. È possibile collegare hub in altre sottoscrizioni all'istanza del servizio Device Provisioning.

Dopo che un hub IoT è collegato al servizio Device Provisioning, è idoneo per partecipare all'allocazione. L'eventuale partecipazione all'allocazione dipende dalle impostazioni della registrazione di cui un dispositivo effettua il provisioning tramite e le impostazioni nell'hub IoT collegato stesso.

Le impostazioni seguenti controllano il modo in cui DPS usa hub IoT collegati:

  • Connessione ion stringa: imposta il hub IoT stringa di connessione usato dal servizio Device Provisioning per connettersi all'hub IoT collegato. Il stringa di connessione si basa su uno dei criteri di accesso condiviso dell'hub IoT. Il servizio Device Provisioning richiede le autorizzazioni seguenti per l'hub IoT: RegistryWrite e Service Connessione. Il stringa di connessione deve essere per un criterio di accesso condiviso con queste autorizzazioni. Per altre informazioni sui criteri di accesso condiviso di hub IoT, vedere hub IoT controllo di accesso e autorizzazioni.

  • Peso allocazione: determina la probabilità di selezione di un hub IoT quando dps esegue l'assegnazione del dispositivo in un set di hub IoT. Il valore può essere compreso tra uno e 1000. Il valore predefinito è uno (o null). I valori più elevati aumentano la probabilità di selezione dell'hub IoT.

  • Applica criteri di allocazione: imposta 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 informazioni sui criteri di allocazione dps e su come partecipano gli hub IoT collegati, vedere Gestire i criteri di allocazione.

Aggiungere un hub IoT collegato

Quando si collega un hub IoT all'istanza del servizio Device Provisioning, diventa disponibile per partecipare all'allocazione. È possibile aggiungere hub IoT all'interno o all'esterno della sottoscrizione. Quando si collega un hub IoT, potrebbe essere disponibile o meno per le allocazioni nelle registrazioni esistenti:

  • Per le registrazioni che non impostano in modo esplicito gli hub IoT su cui applicare i criteri di allocazione, un hub IoT appena collegato inizia immediatamente a partecipare all'allocazione.

  • Per le registrazioni che impostano in modo esplicito gli hub IoT per applicare i criteri di allocazione, è necessario aggiungere manualmente o a livello di codice il nuovo hub IoT alle impostazioni di registrazione per partecipare all'allocazione.

Limiti

Nella portale di Azure è possibile collegare un hub IoT dal menu a sinistra dell'istanza del servizio Device Provisioning o dalla registrazione durante la creazione o l'aggiornamento di una registrazione. In entrambi i casi, l'hub IoT ha come ambito l'istanza del servizio Device Provisioning (non solo la registrazione).

Per collegare un hub IoT all'istanza del servizio Device Provisioning nella portale di Azure:

  1. Nel menu a sinistra dell'istanza del servizio Device Provisioning selezionare Hub IoT collegati.

  2. Nella parte superiore della pagina selezionare + Aggiungi.

  3. Nella pagina Aggiungi collegamento all'hub IoT selezionare la sottoscrizione che contiene l'hub IoT e quindi scegliere il nome dell'hub IoT dall'elenco dell'hubIoT.

  4. Dopo aver selezionato l'hub IoT, scegliere un criterio di accesso che dpS userà per connettersi all'hub IoT. L'elenco Criteri di accesso mostra tutti i criteri di accesso condiviso definiti nei hub IoT selezionati che dispongono di autorizzazioni sia registryWriteche service Connessione definite. Il valore predefinito è il criterio iothubowner . Selezionare i criteri da usare.

  5. Seleziona Salva.

Quando si crea o si aggiorna una registrazione, è possibile usare il pulsante Collega un nuovo hub IoT nella registrazione. Verrà visualizzata la stessa pagina e le stesse opzioni indicate in precedenza. Dopo aver salvato l'hub collegato, sarà disponibile nell'istanza del servizio Device Provisioning e potrà essere selezionato dalla registrazione.

Nota

Nella portale di Azure non è possibile impostare le impostazioni Peso allocazione e Applica criterio di allocazione quando si aggiunge un hub IoT collegato. È invece possibile aggiornare queste impostazioni dopo che l'hub IoT è collegato. Per altre informazioni, vedere Aggiornare un hub IoT collegato.

Usare il comando az iot dps linked-hub create dell'interfaccia della riga di comando di Azure per collegare un hub IoT all'istanza del servizio Device Provisioning.

Ad esempio, il comando seguente collega un hub IoT denominato MyExampleHub usando un stringa di connessione per i criteri di accesso condiviso iothubowner. Questo comando lascia le impostazioni predefinite di Peso allocazione e Applica criterio di allocazione , ma è possibile specificare i valori per queste impostazioni se si desidera.

az iot dps linked-hub create --dps-name MyExampleDps --resource-group MyResourceGroup --connection-string "HostName=MyExampleHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=XNBhoasdfhqRlgGnasdfhivtshcwh4bJwe7c0RIGuWsirW0=" --location westus

Dps supporta anche il collegamento di hub IoT tramite l'API REST per la creazione o l'aggiornamento delle risorse dps, i modelli di Resource Manager e gli SDK di gestione dps.

Aggiornare un hub IoT collegato

È possibile aggiornare le impostazioni in un hub IoT collegato per modificarne il peso di allocazione, se possono essere applicati criteri di allocazione e l'stringa di connessione usato da DPS per connettersi. Quando si aggiornano le impostazioni per un hub IoT, le modifiche diventano effettive immediatamente, indipendentemente dal fatto che l'hub IoT venga specificato in una registrazione o usato per impostazione predefinita.

Usare il portale di Azure per aggiornare un hub IoT collegato

Nella portale di Azure è possibile aggiornare le impostazioni Peso allocazione e Applica criterio di allocazione.

Per aggiornare le impostazioni per un hub IoT collegato usando il portale di Azure:

  1. Nel menu a sinistra dell'istanza del servizio Device Provisioning selezionare Hub IoT collegati e quindi selezionare l'hub IoT dall'elenco.

  2. Nella pagina Dei dettagli dell'hub IoT collegato:

    Screenshot that shows the linked IoT hub details page. .

    • Usare il dispositivo di scorrimento Peso allocazione o la casella di testo per scegliere un peso compreso tra uno e 1000. Il valore predefinito è uno.

    • Impostare l'opzione Applica criteri di allocazione per specificare se l'hub IoT collegato deve essere incluso nell'allocazione.

  3. Salva le impostazioni.

Nota

Non è possibile aggiornare la stringa di connessione usata dal servizio Device Provisioning per connettersi all'hub IoT dal portale di Azure. È invece possibile usare l'interfaccia della riga di comando di Azure per aggiornare il stringa di connessione oppure eliminare l'hub IoT collegato dall'istanza del servizio Device Provisioning e ricollegarlo. Per altre informazioni, vedere Aggiornare le chiavi per gli hub IoT collegati.

Usare l'interfaccia della riga di comando di Azure per aggiornare un hub IoT collegato

Con l'interfaccia della riga di comando di Azure è possibile aggiornare il peso dell'allocazione, applicare i criteri di allocazione e le impostazioni della stringa di Connessione ion.

Usare il comando az iot dps linked-hub update per aggiornare il peso di allocazione o applicare le impostazioni dei criteri di allocazione. Ad esempio, il comando seguente imposta il peso di allocazione e applica i criteri di allocazione per un hub IoT collegato:

az iot dps linked-hub update --dps-name MyExampleDps --resource-group MyResourceGroup --linked-hub MyExampleHub --allocation-weight 2 --apply-allocation-policy true

Usare il comando az iot dps update per aggiornare il stringa di connessione per un hub IoT collegato. È possibile usare il --set parametro insieme al stringa di connessione per i criteri di accesso condiviso dell'hub IoT da usare. Per informazioni dettagliate, vedere Aggiornare le chiavi per gli hub IoT collegati.

Dps supporta anche l'aggiornamento di hub IoT collegate tramite l'API REST per la creazione o l'aggiornamento delle risorse dps, i modelli di Resource Manager e gli SDK di gestione dps.

Eliminare un hub IoT collegato

Quando si elimina un hub IoT collegato dall'istanza del servizio Device Provisioning, non sarà più disponibile per l'impostazione nelle registrazioni future. Tuttavia, può essere o meno rimosso dalle allocazioni nelle registrazioni esistenti:

  • Per le registrazioni che non impostano in modo esplicito gli hub IoT per applicare i criteri di allocazione, un hub IoT collegato eliminato non è più disponibile per l'allocazione.

  • Per le registrazioni che impostano in modo esplicito gli hub IoT per applicare i criteri di allocazione, è necessario rimuovere manualmente o a livello di codice l'hub IoT dalle impostazioni di registrazione per rimuoverlo dalla partecipazione all'allocazione. In caso contrario, potrebbe verificarsi un errore quando un dispositivo tenta di eseguire il provisioning tramite la registrazione.

Usare il portale di Azure per eliminare un hub IoT collegato

Per eliminare un hub IoT collegato dall'istanza del servizio Device Provisioning nella portale di Azure:

  1. Nel menu a sinistra dell'istanza del servizio Device Provisioning selezionare Hub IoT collegati.

  2. Nell'elenco degli hub IoT selezionare la casella di controllo accanto all'hub IoT o agli hub IoT da eliminare. Selezionare Quindi Elimina nella parte superiore della pagina e confermare la scelta quando richiesto.

Usare l'interfaccia della riga di comando di Azure per eliminare un hub IoT collegato

Usare il comando az iot dps linked-hub delete per rimuovere un hub IoT collegato dall'istanza del servizio Device Provisioning. Ad esempio, il comando seguente rimuove l'hub IoT denominato MyExampleHub:

az iot dps linked-hub delete --dps-name MyExampleDps --resource-group MyResourceGroup --linked-hub MyExampleHub

Dps supporta anche l'eliminazione di hub IoT collegate dall'istanza del servizio Device Provisioning usando l'API REST per la creazione o l'aggiornamento delle risorse dps, i modelli di Resource Manager e gli SDK di gestione dps.

Aggiornare le chiavi per gli hub IoT collegati

Potrebbe essere necessario ruotare o aggiornare le chiavi simmetriche per un hub IoT collegato al servizio Device Provisioning. In questo caso, è anche necessario aggiornare l'impostazione stringa di connessione nel servizio Device Provisioning per l'hub IoT collegato. Si noti che il provisioning in un hub IoT avrà esito negativo durante il periodo intermedio tra l'aggiornamento di una chiave nell'hub IoT e l'aggiornamento dell'istanza del servizio Device Provisioning con la nuova stringa di connessioni basata su tale chiave. Per questo motivo, è consigliabile usare l'interfaccia della riga di comando di Azuer per aggiornare le chiavi perché è possibile aggiornare la stringa di connessione nell'hub collegato in modo non corretto. Con il portale di Azure, è necessario eliminare l'hub IoT dall'istanza del servizio Device Provisioning e quindi ricollegarlo per aggiornare il stringa di connessione.

Usare il portale di Azure per aggiornare le chiavi

Non è possibile aggiornare l'impostazione stringa di connessione per un hub IoT collegato quando si usa portale di Azure. È invece necessario eliminare l'hub IoT collegato dall'istanza del servizio Device Provisioning e quindi aggiungerlo nuovamente.

Per aggiornare le chiavi simmetriche per un hub IoT collegato nel portale di Azure:

  1. Nel menu a sinistra dell'istanza del servizio Device Provisioning nella portale di Azure selezionare l'hub IoT per cui aggiornare le chiavi.

  2. Nella pagina Dei dettagli dell'hub IoT collegato prendere nota dei valori per Peso allocazione e Applica criterio di allocazione, questi valori saranno necessari quando si ricollega l'hub IoT all'istanza del servizio Device Provisioning in un secondo momento. Selezionare quindi Gestisci risorsa per passare all'hub IoT.

  3. Nel menu a sinistra dell'hub IoT, in Impostazioni di sicurezza selezionare Criteri di accesso condiviso.

  4. In Criteri di accesso condiviso, in Gestisci criteri di accesso condiviso, selezionare i criteri usati dall'istanza del servizio Device Provisioning per connettersi all'hub IoT collegato.

  5. Nella parte superiore della pagina selezionare Rigenera chiave primaria, Rigenera chiave secondaria o Scambia chiavi e confermare la scelta quando richiesto.

  6. Tornare all'istanza del servizio Device Provisioning.

  7. Seguire la procedura descritta in Eliminare un hub IoT per eliminare l'hub IoT dall'istanza del servizio Device Provisioning.

  8. Seguire i passaggi descritti in Collegare un hub IoT per ricollegare l'hub IoT all'istanza del servizio Device Provisioning con il nuovo stringa di connessione per i criteri.

  9. Se è necessario ripristinare il peso di allocazione e applicare le impostazioni dei criteri di allocazione, seguire la procedura descritta in Aggiornare un hub IoT collegato usando i valori salvati nel passaggio 2.

Usare l'interfaccia della riga di comando di Azure per aggiornare le chiavi

Per aggiornare le chiavi simmetriche per un hub IoT collegato con Azure CLS:

  1. Usare il comando az iot hub policy renew-key per scambiare o rigenerare le chiavi simmetriche per i criteri di accesso condiviso nell'hub IoT. Ad esempio, il comando seguente rinnova la chiave primaria per i criteri di accesso condiviso iothubowner in un hub IoT:

    az iot hub policy renew-key --hub-name MyExampleHub --name owner --rk primary
    
  2. Usare il comando az iot hub connection-string show per ottenere il nuovo stringa di connessione per i criteri di accesso condiviso. Ad esempio, il comando seguente ottiene il stringa di connessione primario per i criteri di accesso condiviso iothubowner per cui la chiave primaria è stata rigenerata nel comando precedente:

    az iot hub connection-string show --hub-name MyExampleHub --policy-name owner --key-type primary
    
  3. Usare il comando az iot dps linked-hub list per trovare la posizione dell'hub IoT nella raccolta di hub IoT collegati per l'istanza del servizio Device Provisioning. Ad esempio, il comando seguente ottiene il stringa di connessione primario per i criteri di accesso condiviso proprietari per cui la chiave primaria è stata rigenerata nel comando precedente:

    az iot dps linked-hub list --dos-name MyExampleDps
    

    L'output mostrerà la posizione dell'hub IoT collegato per cui si vuole aggiornare il stringa di connessione nella tabella degli hub IoT collegati gestiti dall'istanza del servizio Device Provisioning. In questo caso, è il primo hub IoT nell'elenco MyExampleHub.

    [
    {
        "allocationWeight": null,
        "applyAllocationPolicy": null,
        "connectionString": "HostName=MyExampleHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=****",
        "location": "centralus",
        "name": "MyExampleHub.azure-devices.net"
    },
    {
        "allocationWeight": null,
        "applyAllocationPolicy": null,
        "connectionString": "HostName=MyExampleHub-2.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=****",
        "location": "centralus",
        "name": "NyExampleHub-2.azure-devices.net"
    }
    ]
    
  4. Usare il comando az iot dps update per aggiornare il stringa di connessione per l'hub IoT collegato. Usare il --set parametro e la posizione dell'hub IoT collegato nella properties.iotHubs[] tabella per specificare come destinazione l'hub IoT. Ad esempio, il comando seguente aggiorna il stringa di connessione per MyExampleHub restituito per primo nel comando precedente:

    az iot dps update --name MyExampleDps --set properties.iotHubs[0].connectionString="HostName=MyExampleHub-2.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=NewTokenValue"
    

Passaggi successivi

  • Per altre informazioni sui criteri di allocazione, vedere Gestire i criteri di allocazione.