Condividi tramite


Configurare i caricamenti dei file nell'hub IoT con il portale di Azure

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

  1. 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.

    Screenshot che mostra come configurare le impostazioni di caricamento file nel portale.

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

    Screenshot che mostra come visualizzare i contenitori di archiviazione per il caricamento di file.

  3. 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.

  4. 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.

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.

  1. 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.

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

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.

  1. Al prompt di PowerShell eseguire il cmdlet Connect-AzAccount :

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

    Usare 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 $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.

  • 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.