Configurare gli upload dei file nell'hub IoT tramite l'interfaccia della riga di comando di Azure
Questo articolo illustra come configurare i caricamenti di file nell'hub IoT usando l'interfaccia della riga di comando di Azure.
Per usare la funzionalità di caricamento file nell'hub IoT, è prima necessario associare un account di archiviazione di Azure e un contenitore BLOB all'hub IoT. L'hub IoT genera automaticamente URI di firma di accesso condiviso con autorizzazioni di scrittura per questo contenitore BLOB che possono essere usati dai dispositivi durante il caricamento di file. Oltre all'account di archiviazione e al contenitore BLOB, è possibile impostare la durata (TTL) per l'URI di firma di accesso condiviso e il tipo di autenticazione usato dall'hub IoT con Archiviazione di Azure. È anche possibile configurare le impostazioni per le notifiche di caricamento file facoltative che l'hub IoT può recapitare ai servizi back-end.
Prerequisiti
Un account Azure attivo. Se non si ha un account, è possibile crearne uno gratuito in pochi minuti.
Un hub IoT nella sottoscrizione di Azure. Se non si ha ancora un hub, è possibile seguire la procedura descritta in Creare un hub IoT.
Un account di archiviazione di Azure con un contenitore BLOB. Se non si ha un account di archiviazione di Azure, è possibile usare l'interfaccia della riga di comando di Azure per crearne uno. Per altre informazioni, vedere Creare un account di archiviazione.
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.
Nota
Questo articolo usa la versione più recente dell'estensione Azure IoT, denominata azure-iot
. La versione legacy viene chiamata azure-cli-iot-ext
. Deve essere installata solo una versione alla volta. È possibile usare il comando az extension list
per convalidare le estensioni attualmente installate.
Usare az extension remove --name azure-cli-iot-ext
per rimuovere la versione legacy dell'estensione.
Usare az extension add --name azure-iot
per aggiungere la nuova versione dell'estensione.
Per visualizzare le estensioni installate, usare az extension list
.
Accedere all'account Azure e impostarlo
Accedere al proprio account Azure e selezionare la sottoscrizione. Se si usa Azure Cloud Shell, si dovrebbe avere già eseguito l'accesso. Tuttavia, potrebbe essere comunque necessario selezionare la sottoscrizione di Azure se si hanno più sottoscrizioni.
Al prompt dei comandi eseguire il comando per l'accesso:
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
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:
az account set --subscription {your subscription name or id}
Configurare l'accesso all'account di archiviazione
I passaggi seguenti presuppongono che l'account di archiviazione sia stato creato tramite il modello di distribuzione di Resource Manager e non tramite quello Classico.
Per configurare i caricamenti di file dai dispositivi, è necessario concedere all'hub IoT le autorizzazioni di accesso all'account Archiviazione di Azure. L'account di archiviazione deve trovarsi nella stessa sottoscrizione dell'hub IoT. È inoltre necessario il nome del contenitore BLOB nell'account di archiviazione.
È possibile usare l'autenticazione basata su chiave o basata su identità per fornire autorizzazioni di accesso. Microsoft consiglia l'autenticazione basata sull'identità come opzione più sicura.
Autenticazione basata su chiave
Per l'autenticazione basata su chiave, specificare il stringa di connessione per l'account di archiviazione. Usare il comando az storage account show-connection-string per recuperare le chiavi dell'account di archiviazione.
Annotare il valore connectionString
. Il stringa di connessione è simile all'output seguente:
{
"connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName={your_storage_account_name};AccountKey={your_storage_account_key}"
}
Autenticazione basata sull'identità
È possibile usare identità gestite assegnate dal sistema o identità gestite assegnate dall'utente per l'autenticazione basata su identità. Per altre informazioni, vedere hub IoT supporto per le identità gestite.
Usare il comando az role assignment create per assegnare un ruolo all'identità gestita. Per altre informazioni, vedere Assegnare un ruolo di Azure per l'accesso ai dati BLOB.
Configurare l'hub IoT
È ora possibile configurare l'hub IoT per abilitare il caricamento dei file nell'hub IoT usando i dettagli dell'account di archiviazione.
La configurazione richiede i valori seguenti:
Contenitore di archiviazione: un contenitore BLOB in un account di archiviazione di Azure nella sottoscrizione corrente da associare all'hub IoT. Le informazioni necessarie sull'account di archiviazione sono state recuperate nella sezione precedente. L'hub IoT genera automaticamente URI di firma di accesso condiviso con autorizzazioni di scrittura per questo contenitore BLOB che possono essere usati dai dispositivi durante il caricamento di file.
Receive notifications for uploaded files (Ricezione di notifiche per i file caricati): abilitare o disabilitare le notifiche di caricamento del file.
SAS TTL(TTL di firma di accesso condiviso): questa impostazione indica la durata degli URI di firma di accesso condiviso restituiti dal dispositivo tramite l’hub IoT. Il valore è un'ora per impostazione predefinita.
Impostazioni di notifica file - Durata (TTL) predefinita: durata (TTL) di una notifica di caricamento di file prima della scadenza. Il valore è un giorno per impostazione predefinita.
File notification maximum delivery count(Numero massimo di recapiti per le notifiche dei file): numero di tentativi che verranno eseguiti dall'hub IoT per distribuire una notifica di caricamento del file. Il valore è 10 per impostazione predefinita.
Durata blocco delle notifiche file: durata del blocco per la coda di notifica file. Impostata su 60 secondi per impostazione predefinita.
Tipo di autenticazione: tipo di autenticazione che verrà usato dall'hub IoT con Archiviazione di Azure. Questa impostazione determina il modo in cui l'hub IoT esegue l'autenticazione e l'autorizzazione con Archiviazione di Azure. Il valore predefinito è l'autenticazione basata su chiave; Tuttavia, sono consigliate le opzioni di autenticazione dell'identità gestita assegnate dal sistema o assegnate dall'utente. Le identità gestite offrono ai servizi di Azure un'identità gestita automaticamente in Microsoft Entra ID in modo sicuro.
Nota
L'impostazione del tipo di autenticazione configura la modalità di autenticazione dell'hub IoT con l'account di archiviazione di Azure. I dispositivi eseguono sempre l'autenticazione con Archiviazione di Azure usando l'URI di firma di accesso condiviso ottenuto dall'hub IoT.
I comandi seguenti illustrano come configurare le impostazioni di caricamento file nell'hub IoT. Questi comandi vengono visualizzati separatamente per maggiore chiarezza, ma in genere si esegue un singolo comando con tutti i parametri necessari per lo scenario. Includere le virgolette nella posizione in cui vengono visualizzate nella riga di comando. Non includere le parentesi graffe. Altre informazioni su ogni parametro sono disponibili nella documentazione dell'interfaccia della riga di comando di Azure per il comando az iot hub update.
Il comando seguente configura l'account di archiviazione e il contenitore BLOB.
az iot hub update --name {your iot hub name} \
--fileupload-storage-connectionstring "{your storage account connection string}" \
--fileupload-storage-container-name "{your container name}"
Il comando seguente imposta la durata (TTL) dell'URI di firma di accesso condiviso sul valore predefinito (un'ora).
az iot hub update --name {your iot hub name} \
--fileupload-sas-ttl 1
Il comando seguente abilita le notifiche dei file e imposta le proprietà di notifica dei file sui valori predefiniti. La durata della notifica di caricamento dei file è impostata su un'ora e la durata del blocco è impostata su 60 secondi.
az iot hub update --name {your iot hub name} \
--fileupload-notifications true \
--fileupload-notification-max-delivery-count 10 \
--fileupload-notification-ttl 1 \
--fileupload-notification-lock-duration 60
Il comando seguente configura l'autenticazione basata su chiave:
az iot hub update --name {your iot hub name} \
--fileupload-storage-auth-type keyBased
Il comando seguente configura l'autenticazione usando l'identità gestita assegnata dal sistema dell'hub IoT. Prima di poter eseguire questo comando, è necessario abilitare l'identità gestita assegnata dal sistema per l'hub IoT e concedergli il ruolo di controllo degli accessi in base al ruolo corretto nell'account Archiviazione di Azure. Per informazioni sulla procedura, vedere Supporto dell'hub IoT per le identità gestite.
az iot hub update --name {your iot hub name} \
--fileupload-storage-auth-type identityBased \
--fileupload-storage-identity [system]
I comandi seguenti recuperano le identità gestite assegnate dall'utente configurate nell'hub IoT e configurano l'autenticazione con una di esse. Prima di poter usare un'identità gestita assegnata dall'utente per l'autenticazione, è necessario configurarla nell'hub IoT e concedere un ruolo di controllo degli accessi in base al ruolo appropriato nell'account Archiviazione di Azure. Per informazioni dettagliate e per la procedura, vedere Supporto dell'hub IoT per le identità gestite.
Per eseguire una query sulle identità gestite assegnate dall'utente nell'hub IoT, usare il comando az iot hub identity show.
az iot hub identity show --name {your iot hub name} --query userAssignedIdentities
Il comando restituisce una raccolta delle identità gestite assegnate dall'utente configurate nell'hub IoT. L'output seguente mostra una raccolta che contiene una singola identità gestita assegnata dall'utente.
{
"/subscriptions/{your subscription ID}/resourcegroups/{your resource group}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{your user-assigned managed identity name}":
{
"clientId": "<client ID GUID>",
"principalId": "<principal ID GUID>"
}
}
Il comando seguente configura l'autenticazione per l'uso dell'identità assegnata dall'utente precedente.
az iot hub update --name {your iot hub name} \
--fileupload-storage-auth-type identityBased \
--fileupload-storage-identity "/subscriptions/{your subscription ID}/resourcegroups/{your resource group}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{your user-assigned managed identity name}"
È possibile verificare le impostazioni nell'hub IoT usando il comando seguente:
az iot hub show --name {your iot hub name}
Per verificare solo le impostazioni di caricamento file, usare il comando seguente:
az iot hub show --name {your iot hub name}
--query '[properties.storageEndpoints, properties.enableFileUploadNotifications, properties.messagingEndpoints.fileNotifications]'
Per la maggior parte delle situazioni, la soluzione più facile prevede l'uso dei parametri denominati nei comandi dell'interfaccia della riga di comando di Azure. È tuttavia possibile configurare le impostazioni di caricamento dei file con il parametro --set
. I comandi seguenti consentono di comprendere come.
az iot hub update --name {your iot hub name} \
--set properties.storageEndpoints.'$default'.connectionString="{your storage account connection string}"
az iot hub update --name {your iot hub name} \
--set properties.storageEndpoints.'$default'.containerName="{your storage container name}"
az iot hub update --name {your iot hub name} \
--set properties.storageEndpoints.'$default'.sasTtlAsIso8601=PT1H0M0S
az iot hub update --name {your iot hub name} \
--set properties.enableFileUploadNotifications=true
az iot hub update --name {your iot hub name} \
--set properties.messagingEndpoints.fileNotifications.maxDeliveryCount=10
az iot hub update --name {your iot hub name} \
--set properties.messagingEndpoints.fileNotifications.ttlAsIso8601=PT1H0M0S
Passaggi successivi
- Caricare file da una panoramica del dispositivo
- Supporto dell'hub IoT per le identità gestite
- Guide pratiche per il caricamento di file
- Comandi az iot hub update, az iot hub identity show e az iot hub create dell'interfaccia della riga di comando di Azure