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

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.

  1. Nel prompt di PowerShell usare il cmdlet Connect-AzAccount:

    Connect-AzAccount
    
  2. 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.

Passaggi successivi