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 del progetto. Il modello utilizza la sintassi dichiarativa. Si descrive la distribuzione prevista senza scrivere la sequenza di comandi di programmazione necessari 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.
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Prerequisiti
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
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:
- Microsoft.Devices/IotHubs: crea un nuovo hub IoT di Azure.
- Microsoft.Devices/provisioningServices: crea un nuovo servizio device provisioning hub IoT di Azure con il nuovo hub IoT già collegato.
Distribuire il modello
Eseguire la distribuzione con il portale
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.
Selezionare o immettere i valori seguenti e selezionare Rivedi e crea.
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 le 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. 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.
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.
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}
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
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
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"
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.