Share via


Creare ed eliminare route ed endpoint usando Azure Resource Manager

Questo articolo illustra come esportare il modello di hub IoT di Azure, aggiungere una route all'hub IoT e quindi ridistribuire il modello nell'hub IoT usando l'interfaccia della riga di comando di Azure o Azure PowerShell. Usare un modello di azure Resource Manager per creare route ed endpoint per Hub eventi di Azure, bus di servizio di Azure code e argomenti e Archiviazione di Azure.

I modelli di Resource Manager di Azure sono utili quando si vogliono definire le risorse usando un file JSON. Ogni risorsa di Azure ha un modello che definisce i componenti usati in tale risorsa. È possibile esportare tutti i modelli di risorse di Azure.

Importante

Quando si usa un modello di Resource Manager per distribuire una risorsa, il modello sostituisce qualsiasi risorsa esistente del tipo che si sta distribuendo.

Quando si crea un nuovo hub IoT, la sovrascrittura di una risorsa distribuita esistente non è un problema. Per creare un nuovo hub IoT, è possibile usare un modello di base con le proprietà necessarie anziché esportare un modello esistente da un hub IoT già distribuito.

Tuttavia, se si aggiunge una route a un modello di hub IoT esistente Resource Manager, usare un modello esportato dall'hub IoT per assicurarsi che tutte le risorse e le proprietà esistenti rimangano connesse dopo aver distribuito il modello aggiornato. Le risorse già distribuite non verranno sostituite. Ad esempio, un modello di Resource Manager esportato distribuito in precedenza potrebbe contenere informazioni di archiviazione per l'hub IoT se è stato connesso all'archiviazione.

Per altre informazioni sul funzionamento del routing in hub IoT, vedere Usare hub IoT routing dei messaggi per inviare messaggi da dispositivo a cloud a endpoint diversi. Per completare i passaggi per configurare una route che invia messaggi all'archiviazione e quindi testarla in 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:

  • Modello di Azure Resource Manager
  • Un hub IoT
  • Un servizio endpoint in Azure

Modello di Azure Resource Manager

Questo articolo usa un modello di Resource Manager di Azure nel portale di Azure per usare hub IoT e altri servizi di Azure. Per altre informazioni su come usare i modelli di Resource Manager, vedere Che cosa sono i modelli di Azure Resource Manager?

Hub IoT

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

Assicurarsi di avere la risorsa 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 messaggi del dispositivo e registri 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 della route dell'hub IoT:

Creare una route

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 hanno origine i messaggi o i registri eventi. L'endpoint è il punto in cui i messaggi o i registri eventi finiscono. È possibile scegliere le posizioni per l'origine dati e l'endpoint quando si crea una nuova route nell'hub IoT. Si usano quindi le query di routing 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 di Azure come endpoint per la route dell'hub IoT. Il servizio usato per creare l'endpoint deve prima esistere nell'account Azure.

Esportare il modello di Resource Manager dall'hub IoT

Prima di tutto, esportare un modello di Resource Manager dall'hub IoT e quindi aggiungervi una route.

  1. Nel portale di Azure passare all'hub IoT. Nel menu delle risorse in Automazione selezionare Esporta modello.

    Screenshot che mostra il percorso dell'opzione Esporta modello nel menu di una risorsa hub IoT.

  2. Nella scheda Modello di esportazione completare questi passaggi:

    1. Visualizzare il file JSON generato per l'hub IoT.

    2. Deselezionare la casella di controllo Includi parametri .

    3. Selezionare Scarica per scaricare una copia locale del file JSON.

    Screenshot che mostra il percorso del pulsante Scarica nel riquadro Esporta modello.

    Il modello include diversi segnaposto che è possibile usare per aggiungere funzionalità o servizi all'hub IoT. Per questo articolo, aggiungere valori solo alle proprietà in o annidate routingin .

Aggiungere un nuovo endpoint al modello di Resource Manager

Nel file JSON trovare la "endpoints": [] proprietà annidata in "routing". Completare i passaggi per aggiungere un nuovo endpoint in base al servizio di Azure scelto per l'endpoint: Hub eventi, code o argomenti del bus di servizio o Archiviazione di Azure.

Per informazioni su come creare una risorsa di Hub eventi (con contenitore), vedere Avvio rapido: Creare un hub eventi usando un modello di Resource Manager.

Nella portale di Azure ottenere la stringa di connessione primaria dalla risorsa di Hub eventi. Nel riquadro Criteri di accesso condiviso della risorsa selezionare uno dei criteri per visualizzare le informazioni sulla chiave e sulla stringa di connessione. Aggiungere il nome dell'hub eventi al percorso dell'entità alla fine della stringa di connessione. Ad esempio, usare ;EntityPath=my-event-hubs. Questo nome è il nome dell'hub eventi, non il nome dello spazio dei nomi.

Per name, usare un valore univoco per l'endpoint di Hub eventi. Lasciare il id parametro come stringa vuota. Il servizio di Azure fornisce un id valore quando si distribuisce l'endpoint.

"routing": {
   "endpoints": {
      "serviceBusQueues": [],
      "serviceBusTopics": [],
      "eventHubs": [
            {
               "connectionString": "my Event Hubs connection string + entity path",
               "authenticationType": "keyBased",
               "name": "my-event-hubs-endpoint",
               "id": "",
               "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
               "resourceGroup": "my-resource-group"
            }
      ],
      "storageContainers": [],
      "cosmosDBSqlCollections": []
   },
},

Aggiungere una nuova route al modello di Resource Manager

Nel file JSON trovare la "routes": [] proprietà annidata in "routing"e aggiungere la nuova route seguente, in base al servizio endpoint scelto: Hub eventi, code o argomenti del bus di servizio o Archiviazione di Azure.

La route di fallback predefinita raccoglie i messaggi da DeviceMessages. Scegliere un'opzione diversa, ad esempio DeviceConnectionStateEvents. Per altre informazioni sulle opzioni di origine, vedere az iot hub route.

Attenzione

Se si sostituiscono valori esistenti per "routes" con i valori di route usati negli esempi di codice seguenti, le route esistenti vengono rimosse durante la distribuzione. Per mantenere le route esistenti, aggiungere il nuovo oggetto route all'elenco "routes" .

Per altre informazioni sul modello, vedere Definizione di risorsa modello di Azure Resource Manager.

"routes": [
    {
        "name": "MyIotHubRoute",
        "source": "DeviceConnectionStateEvents",
        "condition": "true",
        "endpointNames": [
        "my-event-hubs-endpoint"
        ],
        "isEnabled": true
    }
],

Salvare il file JSON.

Distribuire il modello di Resource Manager

Con il nuovo endpoint e la route aggiunti al modello di Resource Manager, è ora possibile distribuire di nuovo il file JSON nell'hub IoT.

Distribuzione locale

az deployment group create \
  --name my-iot-hub-template \
  --resource-group my-resource-group \
  --template-file "my\path\to\template.json"

Distribuzione di Azure Cloud Shell

Poiché Azure Cloud Shell viene eseguito in un Web browser, è possibile caricare il file modello prima di eseguire il comando di distribuzione. Dopo aver caricato il file, è necessario solo il nome del file modello (anziché l'intero percorso del file) da usare nel template-file parametro .

Screenshot che mostra il percorso del pulsante in Azure Cloud Shell per caricare un file.

az deployment group create \
  --name my-iot-hub-template \
  --resource-group my-resource-group \
  --template-file "template.json"

Nota

Se la distribuzione non riesce, usare l'opzione -verbose per ottenere informazioni sulle risorse create. Usare l'opzione -debug per ottenere altre informazioni per il debug.

Verificare la distribuzione

Per verificare che il modello sia stato distribuito correttamente in Azure, nella portale di Azure passare alla risorsa del gruppo di risorse. Nel menu delle risorse in Impostazioni selezionare Distribuzioni per visualizzare il modello in un elenco delle distribuzioni.

Screenshot che mostra un elenco di distribuzioni per una risorsa nel portale di Azure, con un modello di test evidenziato.

Per visualizzare la nuova route nella portale di Azure, passare alla risorsa hub IoT. Nel riquadro Routing messaggi, nella scheda Route , verificare che la route sia elencata.

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 viene creata una route di archiviazione e testata con un dispositivo nell'hub IoT.