Konfigurieren des Hochladens von Dateien in IoT Hub mit PowerShell

In diesem Artikel erfahren Sie, wie Sie Dateiuploads auf Ihrem IoT-Hub mithilfe von PowerShell konfigurieren.

Damit Sie die Dateiuploadfunktion in IoT Hub nutzen können, müssen Sie Ihrem IoT-Hub zuerst ein Azure-Speicherkonto und einen Blobcontainer zuordnen. IoT Hub generiert automatisch SAS-URIs mit Schreibberechtigungen für diesen Blobcontainer, die Geräte beim Hochladen von Dateien verwenden können. Zusätzlich zum Speicherkonto und Blobcontainer können Sie die Gültigkeitsdauer (TTL) für den SAS-URI festlegen und Einstellungen für die optionalen Benachrichtigungen zum Dateiupload konfigurieren, die IoT Hub an Back-End-Dienste übermitteln kann.

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Voraussetzungen

Anmelden und Festlegen Ihres Azure-Kontos

Melden Sie sich bei Ihrem Azure-Konto an, und wählen Sie Ihr Abonnement aus. Wenn Sie Azure Cloud Shell verwenden, sollten Sie bereits angemeldet sein. Wenn Sie mehrere Abonnements haben, müssen Sie aber möglicherweise weiterhin Ihr Azure-Abonnement auswählen.

  1. Führen Sie an der PowerShell-Eingabeaufforderung das Cmdlet Connect-AzAccount aus:

    Connect-AzAccount
    
  2. Wenn Sie über mehrere Azure-Abonnements verfügen, erhalten Sie durch die Anmeldung bei Azure Zugriff auf alle Azure-Abonnements, die mit Ihren Anmeldeinformationen verknüpft sind. Mit dem Befehl Get-AzSubscription können Sie die Liste der für Sie verfügbaren Azure-Abonnements anzeigen:

    Get-AzSubscription
    

    Führen Sie den folgenden Befehl aus, um das Abonnement auszuwählen, das Sie zum Ausführen der Befehle zum Verwalten Ihres IoT Hubs verwenden möchten. Sie können entweder den Abonnementnamen oder die ID aus der Ausgabe des vorherigen Befehls verwenden:

    Select-AzSubscription `
        -Name "{your subscription name}"
    

    Hinweis

    Der Befehl Select-AzSubscription ist ein Alias des Befehls Select-AzContext. Er ermöglicht Ihnen die Verwendung des vom Befehl Get-AzSubscription zurückgegebenen Abonnementnamens (Name) oder der Abonnement-ID (Id) statt des komplexeren Kontextnamens, der für den Befehl Select-AzContext erforderlich ist.

Abrufen der Details Ihres Speicherkontos

In den folgenden Schritten wird davon ausgegangen, dass Sie Ihr Speicherkonto mit dem Ressourcen-Manager-Bereitstellungsmodell und nicht mit dem klassischen Bereitstellungsmodell erstellt haben.

Sie benötigen die Verbindungszeichenfolge eines Azure-Speicherkontos, um das Hochladen von Dateien von Ihren Geräten zu konfigurieren. Das Speicherkonto muss sich in demselben Abonnement wie der IoT-Hub befinden. Sie benötigen auch den Name des Blobcontainers im Speicherkonto. Verwenden Sie den Befehl Get-AzStorageAccountKey zum Abrufen Ihrer Speicherkontoschlüssel:

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

Notieren Sie den Wert key1 des Speicherkontoschlüssels. Sie benötigen ihn in den folgenden Schritten.

Sie können entweder einen vorhandenen Blobcontainer für das Hochladen von Dateien verwenden oder einen neuen erstellen:

  • Zum Auflisten der vorhandenen Blobcontainer in Ihrem Speicherkonto verwenden Sie die Befehle New-AzStorageContext und Get-AzStorageContainer:

    $ctx = New-AzStorageContext `
        -StorageAccountName {your storage account name} `
        -StorageAccountKey {your storage account key}
    Get-AzStorageContainer -Context $ctx
    
  • Zum Erstellen eines Blobcontainers in Ihrem Speicherkonto verwenden Sie die Befehle New-AzStorageContext und 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
    

Konfigurieren Ihres IoT-Hubs

Sie können nun Ihren IoT Hub für das Hochladen von Dateien auf den IoT Hub unter Verwendung Ihrer Speicherkontodetails konfigurieren.

Die Konfiguration erfordert die folgenden Werte:

  • Speichercontainer: Ein Blobcontainer in einem Azure-Speicherkonto Ihres aktuellen Azure-Abonnements, der Ihrer IoT Hub-Instanz zugeordnet werden soll. Sie haben die erforderlichen Speicherkontoinformationen im vorherigen Abschnitt abgerufen. IoT Hub generiert automatisch SAS-URIs mit Schreibberechtigungen für diesen Blobcontainer, die Geräte beim Hochladen von Dateien verwenden können.

  • Benachrichtigungen für hochgeladene Dateien empfangen: Aktivieren oder deaktivieren Sie Benachrichtigungen zum Hochladen von Dateien.

  • SAS-TTL: Diese Einstellung dient zum Festlegen der Gültigkeitsdauer der SAS-URIs, die von IoT Hub an das Gerät zurückgegeben werden. Standardmäßig auf 1 Stunde festgelegt.

  • Standard-TTL für Dateibenachrichtigungseinstellungen: Die Gültigkeitsdauer einer Dateiuploadbenachrichtigung (Zeit bis zum Ablauf). Standardmäßig auf 1 Tag festgelegt.

  • Anzahl maximaler Zustellungen für Dateibenachrichtigungen: Gibt an, wie oft IoT Hub versucht, eine Dateiuploadbenachrichtigung zu senden. Standardmäßig auf 10 festgelegt.

Verwenden Sie den Befehl Set-AzIotHub zum Konfigurieren der Dateiuploadeinstellungen auf Ihrem IoT-Hub:

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

Hinweis

Standardmäßig authentifiziert sich IoT Hub bei Azure Storage mithilfe des Kontoschlüssels in der Verbindungszeichenfolge. Die Authentifizierung mithilfe von system- oder benutzerseitig zugewiesenen verwalteten Identitäten steht ebenfalls zur Verfügung. Verwaltete Identitäten stellen für Azure-Dienste eine automatisch verwaltete Identität in Microsoft Entra ID auf sichere Weise bereit. Weitere Informationen finden Sie unter IoT Hub-Unterstützung für verwaltete Identitäten. Zurzeit gibt es im Befehl Set-AzIotHub keine Parameter zum Festlegen des Authentifizierungstyps. Stattdessen können Sie das Azure-Portal oder die Azure CLI nutzen.

Nächste Schritte