Configurare i caricamenti dei file nell'hub IoT con PowerShellConfigure IoT Hub file uploads using PowerShell

Per usare la funzionalità di caricamento di file nell'hub IoT, è prima di tutto necessario associare un account di archiviazione di Azure all'hub IoT.To use the file upload functionality in IoT Hub, you must first associate an Azure storage account with your IoT hub. È possibile usare un account di archiviazione esistente o crearne uno nuovo.You can use an existing storage account or create a new one.

Per completare l'esercitazione, sono necessari gli elementi seguenti:To complete this tutorial, you need the following:

Accedere all'account Azure e impostarloSign in and set your Azure account

Accedere al proprio account Azure e selezionare la sottoscrizione.Sign in to your Azure account and select your subscription.

  1. Nel prompt di PowerShell, usare il cmdlet Login-AzureRmAccount:At the PowerShell prompt, run the Login-AzureRmAccount cmdlet:

    Login-AzureRmAccount
    
  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.If you have multiple Azure subscriptions, signing in to Azure grants you access to all the Azure subscriptions associated with your credentials. Usare il comando seguente per elencare gli account Azure che è possibile usare:Use the following command to list the Azure subscriptions available for you to use:

    Get-AzureRMSubscription
    

    Usare il comando seguente per selezionare la sottoscrizione che si vuole usare per eseguire i comandi per gestire l'hub IoT.Use the following command to select subscription that you want to use to run the commands to manage your IoT hub. È possibile usare il nome o l'ID della sottoscrizione dall'output del comando precedente:You can use either the subscription name or ID from the output of the previous command:

    Select-AzureRMSubscription `
        -SubscriptionName "{your subscription name}"
    

Recuperare i dettagli dell'account di archiviazioneRetrieve your storage account details

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.The following steps assume that you created your storage account using the Resource Manager deployment model, and not the Classic deployment model.

Per configurare i caricamenti dei file dai propri dispositivi, è necessario disporre della stringa di connessione di un account di Archiviazione di Azure.To configure file uploads from your devices, you need the connection string for an Azure storage account. L'account di archiviazione deve trovarsi nella stessa sottoscrizione dell'hub IoT.The storage account must be in the same subscription as your IoT hub. È inoltre necessario il nome del contenitore BLOB nell'account di archiviazione.You also need the name of a blob container in the storage account. Usare il comando seguente per recuperare le chiavi dell'account di archiviazione:Use the following command to retrieve your storage account keys:

Get-AzureRmStorageAccountKey `
  -Name {your storage account name} `
  -ResourceGroupName {your storage account resource group}

Prendere nota del valore della chiave dell'account di archiviazione key1.Make a note of the key1 storage account key value. sarà necessario nei passaggi successivi.You need it in the following steps.

Per i caricamenti dei file, è possibile usare un contenitore BLOB esistente oppure crearne uno nuovo:You can either use an existing blob container for your file uploads or create new one:

  • Per elencare i contenitori BLOB esistente nell'account di archiviazione, usare i comandi seguenti:To list the existing blob containers in your storage account, use the following commands:

    $ctx = New-AzureStorageContext `
        -StorageAccountName {your storage account name} `
        -StorageAccountKey {your storage account key}
    Get-AzureStorageContainer -Context $ctx
    
  • Per creare un contenitore BLOB nell'account di archiviazione, usare i comandi seguenti:To create a blob container in your storage account, use the following commands:

    $ctx = New-AzureStorageContext `
        -StorageAccountName {your storage account name} `
        -StorageAccountKey {your storage account key}
    New-AzureStorageContainer `
        -Name {your new container name} `
        -Permission Off `
        -Context $ctx
    

Configurare l'hub IoTConfigure your IoT hub

È ora possibile configurare l'hub IoT per abilitare la funzionalità di caricamento dei file usando i dettagli dell'account di archiviazione.You can now configure your IoT hub to enable file upload functionality using your storage account details.

La configurazione richiede i valori seguenti:The configuration requires the following values:

Contenitore di archiviazione: un contenitore BLOB in un account di archiviazione di Azure nella sottoscrizione corrente da associare all'hub IoT.Storage container: A blob container in an Azure storage account in your current Azure subscription to associate with your IoT hub. Le informazioni necessarie sull'account di archiviazione sono state recuperate nella sezione precedente.You retrieved the necessary storage account information in the preceding section. 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.IoT Hub automatically generates SAS URIs with write permissions to this blob container for devices to use when they upload files.

Receive notifications for uploaded files (Ricezione di notifiche per i file caricati): abilitare o disabilitare le notifiche di caricamento del file.Receive notifications for uploaded files: Enable or disable file upload notifications.

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.SAS TTL: This setting is the time-to-live of the SAS URIs returned to the device by IoT Hub. Il valore è un'ora per impostazione predefinita.Set to one hour by default.

File notification settings default TTL(TTL predefinito per le impostazioni di notifica dei file): durata di una notifica di caricamento del file.File notification settings default TTL: The time-to-live of a file upload notification before it is expired. Il valore è un giorno per impostazione predefinita.Set to one day by default.

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.File notification maximum delivery count: The number of times the IoT Hub attempts to deliver a file upload notification. Il valore è 10 per impostazione predefinita.Set to 10 by default.

Usare il cmdlet PowerShell seguente per configurare le impostazioni di caricamento dei file nell'hub IoT:Use the following PowerShell cmdlet to configure the file upload settings on your IoT hub:

Set-AzureRmIotHub `
    -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

Passaggi successiviNext steps

Per altre informazioni sulle funzionalità di caricamento dei file dell'hub IoT, vedere Caricare file da un dispositivo.For more information about the file upload capabilities of IoT Hub, see Upload files from a device.

Per ulteriori informazioni sulla gestione dell'hub IoT di Azure, consultare questi collegamenti:Follow these links to learn more about managing Azure IoT Hub:

Per altre informazioni sulle funzionalità dell'hub IoT, vedere:To further explore the capabilities of IoT Hub, see: