Creare ed eliminare route ed endpoint usando Azure PowerShell

Questo articolo illustra come creare una route e un endpoint nell'hub in hub IoT di Azure e quindi eliminare la route e l'endpoint. Informazioni su come usare Azure PowerShell per creare route ed endpoint per Hub eventi di Azure, bus di servizio di Azure code e argomenti e Archiviazione di Azure.

Per altre informazioni sul funzionamento del routing in hub IoT, vedere Usare il routing dei messaggi hub IoT per inviare messaggi da dispositivo a cloud a endpoint diversi. Per informazioni su come configurare una route che invia messaggi all'archiviazione e quindi testare su un dispositivo simulato, vedere Esercitazione: Inviare i dati del dispositivo ad Archiviazione di Azure usando hub IoT routing dei messaggi.

Prerequisiti

Le procedure descritte nell'articolo usano le risorse seguenti:

  • Azure PowerShell
  • Un hub IoT
  • Un servizio endpoint in Azure

Azure PowerShell

Questo articolo usa Azure PowerShell per usare hub IoT e altri servizi di Azure. Per usare Azure PowerShell in locale, installare il modulo Azure PowerShell nel computer. In alternativa, per usare Azure PowerShell in un Web browser, abilitare Azure Cloud Shell.

Hub IoT

Per creare una route dell'hub IoT, è necessario un hub IoT creato usando hub IoT di Azure. I messaggi dei dispositivi e i log eventi hanno origine nell'hub IoT.

Assicurarsi di avere la risorsa dell'hub seguente da usare quando si crea la route dell'hub IoT:

Servizio endpoint

Per creare una route dell'hub IoT, è necessario almeno un altro servizio di Azure da usare come endpoint per la route. L'endpoint riceve i messaggi del dispositivo e i log eventi. È possibile scegliere quale servizio di Azure usare per un endpoint per connettersi alla route dell'hub IoT: Hub eventi, code o argomenti del bus di servizio o Archiviazione di Azure.

Assicurarsi di avere una delle risorse seguenti da usare quando si crea un endpoint la route dell'hub IoT:

Creare risorse ed endpoint

In hub IoT è possibile creare una route per inviare messaggi o acquisire eventi. Ogni route ha un'origine dati e un endpoint. L'origine dati è la posizione in cui provengono i messaggi o i log eventi. L'endpoint è il punto in cui i messaggi o i log eventi finiscono. Quando si crea una nuova route nell'hub IoT, scegliere percorsi per l'origine dati e l'endpoint. Usare quindi il routing delle query per filtrare i messaggi o gli eventi prima di passare all'endpoint.

È possibile usare un hub eventi, una coda o un argomento del bus di servizio o un account di archiviazione per essere l'endpoint per la route dell'hub IoT. Il servizio usato per creare l'endpoint deve prima esistere nell'account Azure.

Nota

Se si usa una versione locale di Azure PowerShell, accedere a Azure PowerShell prima di iniziare.

I comandi nelle procedure seguenti usano questi riferimenti:

Creare un hub eventi

Per creare una nuova risorsa di Hub eventi con una regola di autorizzazione:

  1. Creare un nuovo spazio dei nomi di Hub eventi. Per NamespaceName, usare un valore univoco.

    New-AzEventHubNamespace -ResourceGroupName MyResourceGroup -NamespaceName MyNamespace -Location MyLocation
    
  2. Creare la nuova entità hub eventi. Per Name, usare un valore univoco. Per NamespaceName, usare il nome dello spazio dei nomi creato nel passaggio precedente.

    New-AzEventHub -Name MyEventHub -NamespaceName MyNamespace -ResourceGroupName MyResourceGroup
    
  3. Creare una nuova regola di autorizzazione. Per Name, usare il nome dell'entità per EventHubName. Per il nome della regola di autorizzazione, usare un valore univoco.

    New-AzEventHubAuthorizationRule -ResourceGroupName MyResourceGroup -NamespaceName MyNamespace -EventHubName MyEventHub -Name MyAuthRule -Rights @('Manage', 'Send', 'Listen')
    

    Per altre informazioni sull'accesso, vedere Autorizzare l'accesso alle Hub eventi di Azure.

Creare un endpoint di Hub eventi

  1. Ottenere la stringa di connessione primaria dall'hub eventi. Copiare la stringa di connessione da usare in un secondo momento.

    Get-AzEventHubKey -ResourceGroupName MyResourceGroup -NamespaceName MyNamespace -EventHubName MyEventHub -Name MyAuthRule
    
  2. Creare un nuovo endpoint dell'hub IoT in Hub eventi. Usare la stringa di connessione primaria dal passaggio precedente. Il valore per EndpointType deve essere EventHub. Per tutti gli altri parametri, usare i valori per lo scenario.

    Add-AzIotHubRoutingEndpoint -ResourceGroupName MyResourceGroup -Name MyIotHub -EndpointName MyEndpoint -EndpointType EventHub -EndpointResourceGroup MyResourceGroup -EndpointSubscriptionId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ConnectionString "Endpoint=<my connection string>"
    

    Per visualizzare tutte le opzioni dell'endpoint di routing, vedere Add-AzIotHubRoutingEndpoint.

Creare una route hub IoT

Con il nuovo endpoint nell'hub IoT, è possibile creare una nuova route.

La route di fallback predefinita in hub IoT raccoglie messaggi da DeviceMessages. Scegliere un'opzione diversa per la route personalizzata, ad esempio DeviceConnectionStateEvents. Per altre informazioni sulle opzioni di origine, vedere Add-AzIotHubRoute. Il Enabled parametro è un'opzione, quindi non è necessario usare un valore con il parametro .

Add-AzIotHubRoute -ResourceGroupName MyResourceGroup -Name MyIotHub -RouteName MyRoute -Source DeviceLifecycleEvents -EndpointName MyEndpoint -Enabled

PowerShell visualizza una conferma simile a questo esempio:

RouteName     : MyIotHub 
DataSource    : DeviceLifecycleEvents
EndpointNames : MyEndpoint
Condition     : true
IsEnabled     : True

Aggiornare una route hub IoT

Per apportare modifiche a una route esistente, usare il comando seguente. Ad esempio, provare a modificare il nome della route usando il comando .

Set-AzIotHubRoute -ResourceGroupName MyResourceGroup -Name MyIotHub -RouteName MyRoute

Usare il Get-AzIotHubRoute comando per confermare la modifica nella route:

Get-AzIotHubRoute -ResourceGroupName MyResourceGroup -Name MyIotHub

Eliminare un endpoint

Per eliminare un endpoint:

Remove-AzIotHubRoutingEndpoint -ResourceGroupName MyResourceGroup -Name MyIotHub -EndpointName MyEndpoint -PassThru

Eliminare una route hub IoT

Per eliminare una route hub IoT:

Remove-AzIotHubRoute -ResourceGroupName MyResourceGroup -Name MyIotHub -RouteName MyRoute -PassThru

Suggerimento

L'eliminazione di una route non elimina gli endpoint nell'account Azure. È necessario eliminare un endpoint separatamente dall'eliminazione di una route.

Passaggi successivi

In questo articolo si è appreso come creare una route e un endpoint per Hub eventi, code e argomenti del bus di servizio e Archiviazione di Azure.

Per altre informazioni sul routing dei messaggi, vedere Esercitazione: Inviare dati del dispositivo ad Archiviazione di Azure usando hub IoT routing dei messaggi. Nell'esercitazione si crea una route di archiviazione e la si testa con un dispositivo nell'hub IoT.