Share via


Guida introduttiva: Configurare il servizio Device Provisioning di hub IoT con un modello di Resource Manager

È possibile usare un modello di Azure Resource Manager per configurare a livello di codice le risorse cloud di Azure necessarie per il provisioning dei dispositivi. Queste procedure illustrano come creare un hub IoT e un nuovo servizio Device provisioning in hub IoT con un modello di Resource Manager. L'hub IoT viene inoltre collegato alla risorsa del servizio Device Provisioning (DPS) mediante il modello. Questo collegamento consente alla risorsa DPS di assegnare i dispositivi all'hub in base ai criteri di allocazione configurati.

Un modello di Azure Resource Manager è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione per il progetto. Il modello utilizza la sintassi dichiarativa. Si descrive la distribuzione prevista senza scrivere la sequenza di comandi di programmazione per creare la distribuzione.

Questa guida introduttiva usa portale di Azure e l'interfaccia della riga di comando di Azure per eseguire i passaggi a livello di codice necessari per creare un gruppo di risorse e distribuire il modello. Tuttavia, è anche possibile usare PowerShell, .NET, Ruby o altri linguaggi di programmazione per eseguire questi passaggi e distribuire il modello.

Se l'ambiente soddisfa i prerequisiti e si ha già familiarità con l'uso dei modelli arm, selezionando il pulsante Distribuisci in Azure si apre il modello per la distribuzione nel portale di Azure.

Button to deploy the Resource Manager template to Azure.

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Prerequisiti

Rivedere il modello

Il modello usato in questo avvio rapido proviene dai modelli di avvio rapido di Azure.

Nota

Attualmente non è disponibile alcun supporto per i modelli di Resource Manager per la creazione di registrazioni con nuove risorse dps. Si tratta di una richiesta comune e comprensibile che viene considerata per l'implementazione.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.12.40.16777",
      "templateHash": "13184692430416822033"
    }
  },
  "parameters": {
    "iotHubName": {
      "type": "string",
      "metadata": {
        "description": "Specify the name of the Iot hub."
      }
    },
    "provisioningServiceName": {
      "type": "string",
      "metadata": {
        "description": "Specify the name of the provisioning service."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Specify the location of the resources."
      }
    },
    "skuName": {
      "type": "string",
      "defaultValue": "S1",
      "metadata": {
        "description": "The SKU to use for the IoT Hub."
      }
    },
    "skuUnits": {
      "type": "int",
      "defaultValue": 1,
      "metadata": {
        "description": "The number of IoT Hub units."
      }
    }
  },
  "variables": {
    "iotHubKey": "iothubowner"
  },
  "resources": [
    {
      "type": "Microsoft.Devices/IotHubs",
      "apiVersion": "2021-07-02",
      "name": "[parameters('iotHubName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('skuName')]",
        "capacity": "[parameters('skuUnits')]"
      },
      "properties": {}
    },
    {
      "type": "Microsoft.Devices/provisioningServices",
      "apiVersion": "2022-02-05",
      "name": "[parameters('provisioningServiceName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('skuName')]",
        "capacity": "[parameters('skuUnits')]"
      },
      "properties": {
        "iotHubs": [
          {
            "connectionString": "[format('HostName={0};SharedAccessKeyName={1};SharedAccessKey={2}', reference(resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName')), '2021-07-02').hostName, variables('iotHubKey'), listkeys(resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName')), '2021-07-02').value[0].primaryKey)]",
            "location": "[parameters('location')]"
          }
        ]
      },
      "dependsOn": [
        "[resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName'))]"
      ]
    }
  ]
}

Nel modello precedente sono definite due risorse di Azure:

Distribuire il modello

Eseguire la distribuzione con il portale

  1. Selezionare l'immagine seguente per accedere ad Azure e aprire il modello per la distribuzione. Il modello crea una nuova risorsa hub Iot e DPS. Il nuovo hub IoT è collegato alla risorsa DPS.

    Button to deploy the Resource Manager template to Azure.

  2. Selezionare o immettere i valori seguenti e selezionare Rivedi e crea.

    ARM template deployment parameters on the portal

    Se non diversamente specificato per i campi seguenti, usare il valore predefinito per creare l'hub Iot e la risorsa DPS.

    Campo Descrizione
    Abbonamento Seleziona la tua sottoscrizione di Azure.
    Gruppo di risorse Selezionare Crea nuovo e immettere un nome univoco per il gruppo di risorse e quindi selezionare OK.
    Area Selezionare un'area per le risorse. Ad esempio Stati Uniti orientali. Per garantire resilienza e affidabilità, è consigliabile eseguire la distribuzione in una delle aree che supportano zone di disponibilità.
    Nome hub IoT Immettere per l'hub IoT un nome che sia univoco a livello globale all'interno dello spazio dei nomi .azure-devices.net. Questo nome sarà necessario nella sezione successiva per convalidare la distribuzione.
    Provisioning Service Name (Nome del servizio di provisioning) Immettere un nome per la nuova risorsa del servizio Device Provisioning (DPS). Il nome deve essere univoco a livello globale all'interno dello spazio dei nomi .azure-devices-provisioning.net. Il nome della risorsa DPM sarà necessario nella sezione successiva per convalidare la distribuzione.
  3. Nella schermata successiva leggere le condizioni. Se si accettano tutti i termini, selezionare Crea.

    Per completare la distribuzione sono necessari alcuni minuti.

    Oltre al portale di Azure, è anche possibile usare Azure PowerShell, l'interfaccia della riga di comando di Azure e l'API REST. Per informazioni sugli altri metodi di distribuzione, vedere Distribuire modelli.

Eseguire la distribuzione con l'interfaccia della riga di comando di Azure

È necessario usare la versione 2.6 o successiva dell'interfaccia della riga di comando di Azure. Se si esegue l'interfaccia della riga di comando di Azure in locale, verificare la versione eseguendo: az --version

Accedere al proprio account Azure e selezionare la sottoscrizione.

  1. Se si esegue l'interfaccia della riga di comando di Azure in locale anziché eseguirla nel portale, è necessario eseguire l'accesso. Per accedere al prompt dei comandi, eseguire il comando login:

    az login
    

    Seguire le istruzioni per l'autenticazione tramite il codice e accedere all'account Azure con un Web browser.

  2. Se si usano più sottoscrizioni di Azure, effettuando l'accesso ad Azure è possibile accedere a tutti gli account Azure associati alle credenziali. Usare il seguente comando per elencare gli account Azure che è possibile usare:

    az account list -o table
    

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

    az account set --subscription {your subscription name or id}
    
  3. Copiare e incollare i comandi seguenti nel prompt dell'interfaccia della riga di comando. Eseguire quindi i comandi selezionando invio.

    Suggerimento

    Il prompt dei comandi per la posizione di un gruppo di risorse. È possibile visualizzare un elenco di località disponibili eseguendo il comando seguente:

    az account list-locations -o table

    read -p "Enter a project name that is used for generating resource names:" projectName &&
    read -p "Enter the location (i.e. centralus):" location &&
    templateUri="https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.devices/iothub-device-provisioning/azuredeploy.json" &&
    resourceGroupName="${projectName}rg" &&
    az group create --name $resourceGroupName --location "$location" &&
    az deployment group create --resource-group $resourceGroupName --template-uri  $templateUri &&
    echo "Press [ENTER] to continue ..." &&
    read
    
  4. I comandi richiedono le informazioni seguenti. Specificare ogni valore e selezionare la chiave INVIO.

    Parametro Descrizione
    Nome progetto Il valore di questo parametro viene usato per creare un gruppo di risorse per contenere tutte le risorse. La stringa rg viene aggiunta alla fine del valore per il nome del gruppo di risorse.
    location Questo valore è l'area in cui vengono create tutte le risorse.
    iotHubName Immettere per l'hub IoT un nome che sia univoco a livello globale all'interno dello spazio dei nomi .azure-devices.net. Questo nome sarà necessario nella sezione successiva per convalidare la distribuzione.
    provisioningServiceName Immettere un nome per la nuova risorsa del servizio Device Provisioning (DPS). Il nome deve essere univoco a livello globale all'interno dello spazio dei nomi .azure-devices-provisioning.net. Il nome della risorsa DPM sarà necessario nella sezione successiva per convalidare la distribuzione.

    L'interfaccia della riga di comando di Azure viene usata per distribuire il modello. Oltre all'interfaccia della riga di comando di Azure, è possibile usare anche Azure PowerShell, il portale di Azure e l'API REST. Per informazioni sugli altri metodi di distribuzione, vedere Distribuire modelli.

Esaminare le risorse distribuite

  1. Per verificare la distribuzione, eseguire questo comando per elencare le risorse e cercare il nuovo servizio di provisioning e il nuovo hub IoT nell'output:

     az resource list -g "${projectName}rg"
    
  2. Per verificare che l'hub sia già collegato alla risorsa DPS, eseguire questo comando per visualizzare l'estensione DPS.

     az iot dps show --name <Your provisioningServiceName>
    

    Si notino gli hub collegati al membro iotHubs.

Pulire le risorse

Altre guide di avvio rapido di questa raccolta si basano sulla presente guida di avvio rapido. Se si prevede di continuare a usare le guide introduttive successive o con le esercitazioni, non pulire le risorse create in questa guida introduttiva. Se non si prevede di continuare, è possibile usare il portale di Azure o l'interfaccia della riga di comando di Azure per eliminare il gruppo di risorse e tutte le relative risorse.

Per eliminare un gruppo di risorse e tutte le relative risorse dal portale di Azure, è sufficiente aprire il gruppo di risorse e selezionare Elimina gruppo di risorse e la parte superiore.

Per eliminare il gruppo di risorse distribuito tramite l'interfaccia della riga di comando di Azure:

az group delete --name "${projectName}rg"

È anche possibile eliminare gruppi di risorse e singole risorse usando una delle opzioni seguenti:

  • Azure portal
  • PowerShell
  • API REST
  • SDK della piattaforma supportati pubblicati per Azure Resource Manager o hub IoT servizio Device Provisioning

Passaggi successivi

In questa guida introduttiva è stato distribuito un hub IoT e un'istanza del servizio Device Provisioning e sono state collegate le due risorse. Per informazioni su come usare questa configurazione per effettuare il provisioning di un dispositivo, proseguire con l'argomento di avvio rapido per la creazione di un dispositivo.