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:
- Un hub IoT nella sottoscrizione di Azure. Se non si dispone ancora di un hub, è possibile seguire la procedura per creare un hub IoT usando il cmdlet di PowerShell New-AzIotHub.
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:
Risorsa hub eventi (con contenitore). Se è necessario creare una nuova risorsa di Hub eventi, vedere Avvio rapido: Creare un hub eventi usando Azure PowerShell.
Risorsa della coda del bus di servizio. Se è necessario creare una nuova coda del bus di servizio, vedere Usare Azure PowerShell per creare uno spazio dei nomi e una coda del bus di servizio.
Risorsa dell'argomento del bus di servizio. Se è necessario creare un nuovo argomento del bus di servizio, vedere il riferimento a New-AzServiceBusTopic e la documentazione di messaggistica bus di servizio di Azure.
Risorsa di archiviazione di Azure. Se è necessario creare un nuovo account di archiviazione in Azure, vedere Creare un account di archiviazione.
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:
Creare un nuovo spazio dei nomi di Hub eventi. Per
NamespaceName
, usare un valore univoco.New-AzEventHubNamespace -ResourceGroupName MyResourceGroup -NamespaceName MyNamespace -Location MyLocation
Creare la nuova entità hub eventi. Per
Name
, usare un valore univoco. PerNamespaceName
, usare il nome dello spazio dei nomi creato nel passaggio precedente.New-AzEventHub -Name MyEventHub -NamespaceName MyNamespace -ResourceGroupName MyResourceGroup
Creare una nuova regola di autorizzazione. Per
Name
, usare il nome dell'entità perEventHubName
. 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
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
Creare un nuovo endpoint dell'hub IoT in Hub eventi. Usare la stringa di connessione primaria dal passaggio precedente. Il valore per
EndpointType
deve essereEventHub
. 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.