Creare un hub IoT usando un modello di Azure Resource Manager (PowerShell)

È possibile utilizzare Gestione risorse di Azure per creare e gestire hub IoT di Azure a livello di codice. In questa esercitazione viene illustrato come usare un modello di Azure Resource Manager per creare un hub IoT con PowerShell.

Nota

Azure offre due diversi modelli di distribuzione per creare e usare le risorse: Azure Resource Manager e classico. In questo articolo viene illustrato l'uso del modello di distribuzione Azure Resource Manager.

Per completare l'esercitazione, sono necessari gli elementi seguenti:

  • Un account Azure attivo.
    Se non si ha un account, è possibile crearne uno gratuito in pochi minuti.
  • Azure PowerShell 1.0 o versione successiva.

Suggerimento

Per altre informazioni su come usare PowerShell e i modelli di Azure Resource Manager per creare risorse di Azure, vedere Using Azure PowerShell with Azure Resource Manager (Uso di Azure PowerShell con Azure Resource Manager).

Connettersi alla sottoscrizione di Azure

In un prompt dei comandi di PowerShell, immettere il comando seguente per accedere alla sottoscrizione di Azure:

Login-AzureRmAccount

Se si usano più sottoscrizioni Azure e si esegue l'accesso ad Azure, è possibile accedere a tutte le sottoscrizioni di Azure associate alle credenziali. Usare il comando seguente per elencare gli account Azure che è possibile usare:

Get-AzureRMSubscription

Usare il comando seguente per selezionare la sottoscrizione che si vuole usare per eseguire i comandi per creare l'hub IoT. È possibile usare il nome o l'ID della sottoscrizione dall'output del comando precedente:

Select-AzureRMSubscription `
    -SubscriptionName "{your subscription name}"

È possibile usare i comandi seguenti per individuare dove è possibile distribuire un hub IoT e le versioni API attualmente supportate:

((Get-AzureRmResourceProvider -ProviderNamespace Microsoft.Devices).ResourceTypes | Where-Object ResourceTypeName -eq IoTHubs).Locations
((Get-AzureRmResourceProvider -ProviderNamespace Microsoft.Devices).ResourceTypes | Where-Object ResourceTypeName -eq IoTHubs).ApiVersions

Creare un gruppo di risorse per contenere l'hub IoT usando il comando seguente in una delle località supportate per l'hub IoT. In questo esempio viene creato un gruppo di risorse denominato MyIoTRG1:

New-AzureRmResourceGroup -Name MyIoTRG1 -Location "East US"

Inviare un modello per creare un hub IoT

Utilizzare un modello JSON per creare un hub IoT nel gruppo di risorse. È anche possibile usare un modello di Azure Resource Manager per apportare modifiche a un hub IoT esistente.

  1. Usare un editor di testo per creare un modello di Azure Resource Manager denominato template.json con la definizione di risorsa seguente per creare un nuovo hub IoT standard. In questo esempio l'hub IoT viene aggiunto all'area Stati Uniti orientali, vengono creati due gruppi di consumer (cg1 e cg2) sull'endpoint compatibile con Hub eventi e viene usata la versione 2016-02-03 dell'API. Questo modello prevede anche che il nome dell'hub IoT venga passato come un parametro denominato hubName. Per un elenco aggiornato delle località in cui è supportato l'hub IoT, vedere lo Stato di Azure.

    {
      "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "hubName": {
          "type": "string"
        }
      },
      "resources": [
      {
        "apiVersion": "2016-02-03",
        "type": "Microsoft.Devices/IotHubs",
        "name": "[parameters('hubName')]",
        "location": "East US",
        "sku": {
          "name": "S1",
          "tier": "Standard",
          "capacity": 1
        },
        "properties": {
          "location": "East US"
        }
      },
      {
        "apiVersion": "2016-02-03",
        "type": "Microsoft.Devices/IotHubs/eventhubEndpoints/ConsumerGroups",
        "name": "[concat(parameters('hubName'), '/events/cg1')]",
        "dependsOn": [
          "[concat('Microsoft.Devices/Iothubs/', parameters('hubName'))]"
        ]
      },
      {
        "apiVersion": "2016-02-03",
        "type": "Microsoft.Devices/IotHubs/eventhubEndpoints/ConsumerGroups",
        "name": "[concat(parameters('hubName'), '/events/cg2')]",
        "dependsOn": [
          "[concat('Microsoft.Devices/Iothubs/', parameters('hubName'))]"
        ]
      }
      ],
      "outputs": {
        "hubKeys": {
          "value": "[listKeys(resourceId('Microsoft.Devices/IotHubs', parameters('hubName')), '2016-02-03')]",
          "type": "object"
        }
      }
    }
    
  2. Salvare il file del modello di Azure Resource Manager sul computer locale. Questo esempio presuppone che il file venga salvato in una cartella denominata c:\templates.

  3. Eseguire il comando seguente per distribuire il nuovo hub IoT, passando il nome dell'hub IoT come parametro. In questo esempio, il nome dell'hub IoT è abcmyiothub. Il nome dell'hub IoT deve essere globalmente univoco:

    New-AzureRmResourceGroupDeployment -ResourceGroupName MyIoTRG1 -TemplateFile C:\templates\template.json -hubName abcmyiothub
    

    Importante

    L'hub IoT sarà individuabile pubblicamente come endpoint DNS, quindi evitare di indicare informazioni riservate nell'assegnazione del nome.

  4. L'output visualizza le chiavi per l'hub IoT che è stato creato.

  5. Per verificare che l'applicazione abbia aggiunto il nuovo hub IoT, visitare il portale di Azure e visualizzare l'elenco delle risorse. In alternativa, usare il cmdlet di PowerShell Get-AzureRmResource.

Nota

Questa applicazione di esempio aggiunge un hub IoT Standard S1 che viene addebitato. Al termine è possibile eliminare l'hub IoT usando il portale di Azure o il cmdlet di PowerShell Remove-AzureRmResource.

Passaggi successivi

Dopo aver distribuito un hub IoT usando un modello di Azure Resource Manager con PowerShell, può essere opportuno ottenere informazioni più dettagliate:

Per altre informazioni sulle attività di sviluppo per l'hub IoT, vedere gli articoli seguenti:

Per altre informazioni sulle funzionalità dell'hub IoT, vedere: