Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La configurazione dei caricamenti di file nell'hub IoT consente ai dispositivi connessi di caricare i file in un account di archiviazione di Azure. Questo articolo illustra come configurare i caricamenti di file nell'hub IoT usando il portale di Azure, l'interfaccia della riga di comando di Azure e Azure PowerShell.
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 creare un account 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.
Configurare l'hub IoT nel portale di Azure
Nel portale di Azure passare all'hub IoT e selezionare Caricamento file per visualizzare le proprietà di caricamento dei file. Selezionare quindi Contenitore di archiviazione di Azure in Impostazioni contenitore di archiviazione.
Nella sottoscrizione corrente selezionare un account di archiviazione di Azure e un contenitore BLOB da associare all'hub IoT. Se necessario, è possibile creare un account di archiviazione di Azure nel riquadro Account di archiviazione e creare un contenitore BLOB nel riquadro Contenitori.
Dopo aver selezionato un account di archiviazione di Azure e un contenitore BLOB, configurare le altre proprietà di caricamento dei file.
Receive notifications for uploaded files(Ricezione di notifiche per i file caricati): abilitare o disabilitare le notifiche di caricamento del file mediante l'apposita opzione.
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. Per impostazione predefinita è impostato su un'ora, ma può essere personalizzato con altri valori tramite il dispositivo di scorrimento.
Impostazioni di notifica file - Durata (TTL) predefinita: durata (TTL) di una notifica di caricamento di file prima della scadenza. Per impostazione predefinita è impostato su un giorno, ma può essere personalizzato con altri valori tramite il dispositivo di scorrimento.
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. Per impostazione predefinita è impostato su 10, ma può essere personalizzato con altri valori tramite il dispositivo di scorrimento.
Tipo di autenticazione: per impostazione predefinita, l'hub IoT di Azure usa l'autenticazione basata su chiave per la connessione e l'autorizzazione per Archiviazione di Azure. È anche possibile configurare identità gestite assegnate dall'utente o assegnate dal sistema per autenticare l'hub IoT di Azure con Archiviazione di Azure. Le identità gestite offrono ai servizi di Azure un'identità gestita automaticamente in modo sicuro in Microsoft Entra ID. Per informazioni su come configurare le identità gestite, vedere Supporto dell'hub IoT per le identità gestite. Dopo aver configurato una o più identità gestite nell'account di archiviazione di Azure e nell'hub IoT, è possibile selezionarne una per l'autenticazione con Archiviazione di Azure con i pulsanti Assegnata dal sistema o Assegnata dall'utente.
Note
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.
Per salvare le impostazioni, fare clic su Save (Salva). Assicurarsi di controllare la conferma dell'avvenuto completamento. Alcune selezioni, ad esempio Tipo di autenticazione, vengono convalidate solo dopo aver salvato le impostazioni.
Prerequisiti
Un account Azure attivo. Se non si ha un account, è possibile creare un account 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 una. Per altre informazioni, vedere Creare un account di archiviazione.
È possibile utilizzare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Introduzione ad Azure Cloud Shell.
Se preferisci eseguire localmente i comandi di riferimento della CLI, installa l'Azure CLI. 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 usi un'installazione locale, accedi all'interfaccia della riga di comando di Azure usando il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Eseguire l'autenticazione ad Azure con l'interfaccia della riga di comando di Azure.
Quando ti viene richiesto, installa l'estensione Azure CLI al primo utilizzo. Per altre informazioni sulle estensioni, vedere Usare e gestire le estensioni con l'interfaccia della riga di comando di Azure.
Esegui az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, avviare az upgrade.
Accedere e impostare l'account Azure
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 dispone di più sottoscrizioni.
Al prompt dei comandi eseguire il comando login:
az loginSeguire 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 listUsare il comando seguente per selezionare la sottoscrizione da 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 usando il modello di distribuzione Resource Manager e non il modello di distribuzione classica .
Per configurare i caricamenti di file dai dispositivi, è necessario concedere all'hub IoT le autorizzazioni di accesso all'account di archiviazione di Azure. L'account di archiviazione deve trovarsi nella stessa sottoscrizione dell'hub IoT. È necessario anche il nome di un blob container 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 la 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. La 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 Supporto dell'hub IoT 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 la possibilità di caricare 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.
Ricevere notifiche per i file caricati: abilitare o disabilitare le notifiche di caricamento dei 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. È impostato su un'ora di default.
TTL predefinito delle impostazioni di notifica dei file: durata (TTL) di una notifica di caricamento di file prima della scadenza. Impostato su 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. È impostato su 10 per impostazione predefinita.
Durata del blocco delle notifiche file: La durata del blocco per la coda di notifiche del file. Impostato su 60 secondi per impostazione predefinita.
Tipo di autenticazione: il tipo di autenticazione che l'Hub IoT deve utilizzare con Azure Storage. Questa impostazione determina il modo in cui l'hub IoT autentica e autorizza con Azure Storage. 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 modo sicuro in Microsoft Entra ID.
Note
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 dei 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. Includi le virgolette quando compaiono nella riga di comando. Non includere le parentesi graffe. Altri dettagli 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 di vita dell'URI SAS 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 di archiviazione di Azure. Per informazioni su come, 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 di archiviazione di Azure. Per altri dettagli e passaggi, vedere Supporto dell'hub IoT per le identità gestite.
Per eseguire una query per le 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 esaminare le impostazioni nell'hub IoT usando il comando seguente:
az iot hub show --name {your iot hub name}
Per esaminare solo le impostazioni di caricamento dei 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, l'uso dei parametri denominati nei comandi dell'interfaccia della riga di comando di Azure è più semplice; Tuttavia, è anche possibile configurare le impostazioni di caricamento dei file con il --set parametro . 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
Prerequisiti
Un account Azure attivo. Se non si ha un account, è possibile creare un account gratuito in pochi minuti.
Un hub IoT di Azure. Se non si ha un hub IoT, è possibile usare il cmdletNew-AzIoTHub per crearne uno o seguire i passaggi descritti in Creare un hub IoT.
Un account di archiviazione di Azure. Se non si ha un account di archiviazione di Azure, è possibile usare i cmdlet di PowerShell di Archiviazione di Azure per crearne uno o usare il portale per creare un account di archiviazione.
Usare l'ambiente di PowerShell in Azure Cloud Shell.
Se si preferisce, installare PowerShell in locale.
- Installare il modulo Azure Az PowerShell. Il modulo viene installato per impostazione predefinita nell'ambiente PowerShell di Azure Cloud Shell.
- Accedere a PowerShell usando il comando Connect-AzAccount . Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere con Azure PowerShell.
Accedere e impostare l'account Azure
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 dispone di più sottoscrizioni.
Al prompt di PowerShell eseguire il cmdlet Connect-AzAccount :
Connect-AzAccountSe si hanno più sottoscrizioni di Azure, l'accesso ad Azure concede l'accesso a tutte le sottoscrizioni di Azure associate alle credenziali. Usare il comando Get-AzSubscription per elencare le sottoscrizioni di Azure disponibili per l'uso:
Get-AzSubscriptionUsare il comando seguente per selezionare la sottoscrizione da usare per eseguire i comandi per gestire l'hub IoT. È possibile usare il nome o l'ID della sottoscrizione dall'output del comando precedente:
Select-AzSubscription ` -Name "{your subscription name}"Note
Il comando Select-AzSubscription è un alias di Select-AzContext che consente di usare il nome della sottoscrizione (Nome) o l'ID sottoscrizione (ID) restituito dal comando Get-AzSubscription anziché il nome di contesto più complesso necessario per il comando Select-AzContext .
Recuperare i dettagli dell'account di archiviazione
I passaggi seguenti presuppongono che l'account di archiviazione sia stato creato usando il modello di distribuzione Resource Manager e non il modello di distribuzione classica .
Per configurare i caricamenti di file dai dispositivi, è necessaria la stringa di connessione per un account di archiviazione di Azure. L'account di archiviazione deve trovarsi nella stessa sottoscrizione dell'hub IoT. È necessario anche il nome di un blob container nell'account di archiviazione. Usare il comando Get-AzStorageAccountKey per recuperare le chiavi dell'account di archiviazione:
Get-AzStorageAccountKey `
-Name {your storage account name} `
-ResourceGroupName {your storage account resource group}
Prendere nota del valore della chiave dell'account di archiviazione key1 . È necessario nei passaggi seguenti.
È possibile usare un contenitore BLOB esistente per i caricamenti di file o crearne uno nuovo:
Per elencare i contenitori BLOB esistenti nell'account di archiviazione, usare i comandi New-AzStorageContext e Get-AzStorageContainer :
$ctx = New-AzStorageContext ` -StorageAccountName {your storage account name} ` -StorageAccountKey {your storage account key} Get-AzStorageContainer -Context $ctxPer creare un contenitore BLOB nell'account di archiviazione, usare i comandi New-AzStorageContext e New-AzStorageContainer :
$ctx = New-AzStorageContext ` -StorageAccountName {your storage account name} ` -StorageAccountKey {your storage account key} New-AzStorageContainer ` -Name {your new container name} ` -Permission Off ` -Context $ctx
Configurare l'hub IoT
È ora possibile configurare l'hub IoT per caricare i 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.
Ricevere notifiche per i file caricati: abilitare o disabilitare le notifiche di caricamento dei 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. È impostato su un'ora di default.
Impostazioni di notifica file - Durata (TTL) predefinita: durata (TTL) di una notifica di caricamento di file prima della scadenza. Impostato su 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. È impostato su 10 per impostazione predefinita.
Usare il comando Set-AzIotHub per configurare le impostazioni di caricamento dei file nell'hub IoT:
Set-AzIotHub `
-ResourceGroupName "{your iot hub resource group}" `
-Name "{your iot hub name}" `
-FileUploadNotificationTtl "01:00:00" `
-FileUploadSasUriTtl "01:00:00" `
-EnableFileUploadNotifications $true `
-FileUploadStorageConnectionString "DefaultEndpointsProtocol=https;AccountName={your storage account name};AccountKey={your storage account key};EndpointSuffix=core.windows.net" `
-FileUploadContainerName "{your blob container name}" `
-FileUploadNotificationMaxDeliveryCount 10
Note
Per impostazione predefinita, l'IoT Hub esegue l'autenticazione con Azure Storage usando la chiave dell'account nella stringa di connessione. È disponibile anche l'autenticazione tramite identità gestite assegnate dal sistema o assegnate dall'utente. Le identità gestite offrono ai servizi di Azure un'identità gestita automaticamente in modo sicuro in Microsoft Entra ID. Per altre informazioni, vedere Supporto dell'hub IoT per le identità gestite. Attualmente, non esistono parametri nel comando Set-AzIotHub per impostare il tipo di autenticazione.