Configurare i caricamenti dei file nell'hub IoT con PowerShell
Questo articolo illustra come configurare i caricamenti di file nell'hub IoT usando PowerShell.
Per usare la funzionalità di caricamento di file nell'hub IoT, è prima di tutto necessario associare un account di archiviazione e un contenitore BLOB di Azure 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 configurare le impostazioni per le notifiche di caricamento di file facoltative che l'hub IoT può recapitare ai servizi back-end.
Nota
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Prerequisiti
Un account Azure attivo. Se non si ha un account, è possibile crearne uno gratuito in pochi minuti.
Un hub IoT di Azure. Se non si ha un hub IoT, è possibile usare il cmdlet New-AzIoTHub per crearne uno o seguire i passaggi descritti in Creare un hub IoT.
Un account di archiviazione di Azure. Se non si dispone di un account di archiviazione di Azure, è possibile usare i cmdlet 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 Az PowerShell di Azure. Il modulo viene installato per impostazione predefinita nell'ambiente di 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 tramite Azure PowerShell.
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.
Nel prompt di PowerShell usare il cmdlet Connect-AzAccount:
Connect-AzAccount
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 Get-AzSubscription per elencare le sottoscrizioni di Azure che è possibile usare:
Get-AzSubscription
Usare il comando seguente per selezionare la sottoscrizione che si vuole 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}"
Nota
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 tramite il modello di distribuzione di Resource Manager e non tramite quello Classico.
Per configurare i caricamenti dei file dai propri dispositivi, è necessario disporre della stringa di connessione di un account di 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. 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. sarà necessario nei passaggi successivi.
Per i caricamenti dei file, è possibile usare un contenitore BLOB esistente oppure 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 $ctx
Per 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.
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.
TTL predefinito per le impostazioni di notifica dei file: durata di una notifica di caricamento del 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.
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
Nota
Per impostazione predefinita, l'hub IoT esegue l'autenticazione con Archiviazione di Azure 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 Microsoft Entra ID in modo sicuro. 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. È invece possibile usare il portale di Azure o l'interfaccia della riga di comando di Azure.