Freigeben über


Konfigurieren des Dateiuploads in IoT Hub im Azure-Portal

Durch das Konfigurieren von Dateiuploads in Ihrem IoT-Hub können Ihre verbundenen Geräte Dateien in ein Azure-Speicherkonto hochladen. In diesem Artikel erfahren Sie, wie Sie Dateiuploads auf Ihrem IoT-Hub mithilfe des Azure-Portals, der Azure CLI und der Azure 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 und den Authentifizierungstyp festlegen, der von IoT Hub für Azure Storage verwendet wird. Sie können auch Einstellungen für die optionalen Dateiuploadbenachrichtigungen konfigurieren, die IoT Hub an Back-End-Dienste übermitteln kann.

Voraussetzungen

  • Ein aktives Azure-Konto. Wenn Sie nicht über ein Konto verfügen, können Sie in nur wenigen Minuten ein kostenloses Konto erstellen.

  • Ein IoT-Hub in Ihrem Azure-Abonnement. Wenn Sie noch keinen Hub haben, können Sie die Schritte unter Erstellen eines IoT-Hubs ausführen.

Konfigurieren Ihres IoT-Hubs im Azure-Portal

  1. Navigieren Sie im Azure-Portal zu Ihrem IoT-Hub, und wählen Sie Dateiupload aus, um die Dateiuploadeigenschaften anzuzeigen. Wählen Sie dann unter Einstellungen für Speichercontainer die Option Azure Storage-Container aus.

    Screenshot: Konfigurieren von Dateiuploadeinstellungen im Portal.

  2. Wählen Sie in Ihrem aktuellen Abonnement ein Azure Storage-Konto und einen Blobcontainer aus, das bzw. der Ihrem IoT-Hub zugeordnet werden soll. Bei Bedarf können Sie im Bereich Speicherkonten ein Azure Storage-Konto und im Bereich Container einen Blobcontainer erstellen.

    Screenshot: Anzeigen von Speichercontainern für den Dateiupload.

  3. Nachdem Sie ein Azure Storage-Konto und einen Blobcontainer ausgewählt haben, konfigurieren Sie die restlichen Dateiuploadeigenschaften.

    • Benachrichtigungen für hochgeladene Dateien empfangen: Aktivieren oder deaktivieren Sie Dateiuploadbenachrichtigungen über den Umschalter.

    • 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, kann aber mithilfe des Schiebereglers in andere Werte geändert werden.

    • Standard-TTL für Dateibenachrichtigungseinstellungen: Die Gültigkeitsdauer einer Dateiuploadbenachrichtigung (Zeit bis zum Ablauf). Standardmäßig auf 1 Tag festgelegt, kann aber mithilfe des Schiebereglers in andere Werte geändert werden.

    • Anzahl maximaler Zustellungen für Dateibenachrichtigungen: Gibt an, wie oft IoT Hub versucht, eine Dateiuploadbenachrichtigung zu senden. Standardmäßig auf 10 festgelegt, kann aber mithilfe des Schiebereglers in andere Werte geändert werden.

    • Authentifizierungstyp: Standardmäßig verwendet Azure IoT Hub schlüsselbasierte Authentifizierung zum Herstellen einer Verbindung mit und Autorisieren bei Azure Storage. Sie können auch benutzerseitig oder systemseitig zugewiesene verwaltete Identitäten konfigurieren, um Azure IoT Hub bei Azure Storage zu authentifizieren. Verwaltete Identitäten stellen für Azure-Dienste eine automatisch verwaltete Identität in Microsoft Entra ID auf sichere Weise bereit. Wenn Sie erfahren möchten, wie verwaltete Identitäten konfiguriert werden, lesen Sie IoT Hub-Unterstützung für verwaltete Identitäten. Nachdem Sie eine oder mehrere verwaltete Identität(en) in Ihrem Azure Storage-Konto und IoT-Hub konfiguriert haben, können Sie eine davon zur Authentifizierung bei Azure Storage mit der Schaltfläche System-assigned (Systemseitig zugewiesen) oder User-assigned (Benutzerseitig zugewiesen) auswählen.

      Hinweis

      Mit der Einstellung für den Authentifizierungstyp wird konfiguriert, wie sich Ihr IoT-Hub bei Ihrem Azure Storage-Konto authentifiziert. Geräte authentifizieren sich bei Azure Storage immer mithilfe des SAS-URI, den sie vom IoT-Hub abrufen.

  4. Klicken Sie auf Save (Speichern), um Ihre Einstellungen zu speichern. Überprüfen Sie unbedingt die Bestätigung auf einen erfolgreichen Abschluss. Einige Auswahloptionen, z. B. Authentifizierungstyp, werden erst überprüft, nachdem Sie Ihre Einstellungen gespeichert haben.

Voraussetzungen

  • Ein aktives Azure-Konto. Wenn Sie nicht über ein Konto verfügen, können Sie in nur wenigen Minuten ein kostenloses Konto erstellen.

  • Ein IoT-Hub in Ihrem Azure-Abonnement. Wenn Sie noch keinen Hub haben, können Sie die Schritte unter Erstellen eines IoT-Hubs ausführen.

  • Ein Azure Storage-Konto mit einem BLOB-Container. Wenn Sie nicht über ein Azure Storage-Konto verfügen, können Sie die Azure CLI verwenden, um ein Konto zu erstellen. Weitere Informationen finden Sie unter Erstellen eines Speicherkontos.

Melden Sie sich an, und legen Sie Ihr Azure-Konto fest.

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. Möglicherweise müssen Sie jedoch weiterhin Ihr Azure-Abonnement auswählen, wenn Sie über mehrere Abonnements verfügen.

  1. Führen Sie an der Eingabeaufforderung den Anmeldebefehl aus:

    az login
    

    Befolgen Sie die Anweisungen zur Authentifizierung mit dem Code, und melden Sie sich in einem Webbrowser bei Ihrem Azure-Konto an.

  2. Wenn Sie über mehrere Azure-Abonnements verfügen, erhalten Sie durch die Anmeldung bei Azure Zugriff auf alle Azure-Konten, die mit Ihren Anmeldeinformationen verknüpft sind. Führen Sie den folgenden Befehl aus, um eine Liste der Azure-Konten anzuzeigen, die Sie verwenden können:

    az account list
    

    Verwenden Sie den folgenden Befehl, um das Abonnement auszuwählen, mit dem Sie die Befehle ausführen möchten, um Ihren IoT-Hub zu erstellen. Sie können entweder den Abonnementnamen oder die ID aus der Ausgabe des vorherigen Befehls verwenden:

    az account set --subscription {your subscription name or id}
    

Konfigurieren des Zugriffs auf das Speicherkonto

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

Um Dateiuploads von Ihren Geräten zu konfigurieren, müssen Sie Ihrem IoT-Hub Zugriffsberechtigungen für das Azure Storage-Konto erteilen. Das Speicherkonto muss sich im selben Abonnement wie Ihr IoT-Hub befinden. Außerdem benötigen Sie den Namen eines Blob-Containers im Speicherkonto.

Sie können die schlüsselbasierte oder identitätsbasierte Authentifizierung verwenden, um Zugriffsberechtigungen bereitzustellen. Microsoft empfiehlt die identitätsbasierte Authentifizierung als sicherere Option.

Schlüsselbasierte Authentifizierung

Geben Sie für die schlüsselbasierte Authentifizierung die Verbindungszeichenfolge für Ihr Speicherkonto an. Verwenden Sie den Befehl az storage account show-connection-string , um Ihre Speicherkontoschlüssel abzurufen.

Notieren Sie sich den Wert für connectionString. Die Verbindungszeichenfolge sieht ähnlich wie die folgende Ausgabe aus:

{
  "connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName={your_storage_account_name};AccountKey={your_storage_account_key}"
}

Identitätsbasierte Authentifizierung

Sie können vom System zugewiesene verwaltete Identitäten oder vom Benutzer zugewiesene verwaltete Identitäten für die identitätsbasierte Authentifizierung verwenden. Weitere Informationen finden Sie unter IoT Hub-Unterstützung für verwaltete Identitäten.

Verwenden Sie den Befehl " az role assignment create" zum Zuweisen einer Rolle zu Ihrer verwalteten Identität. Weitere Informationen finden Sie unter Zuweisen einer Azure-Rolle für den Zugriff auf Blobdaten.

Konfigurieren Ihres IoT-Hubs

Sie können jetzt Ihren IoT-Hub konfigurieren, um das Hochladen von Dateien in den IoT-Hub mithilfe Ihrer Speicherkontodetails zu ermöglichen.

Für die Konfiguration sind die folgenden Werte erforderlich:

  • Speichercontainer: Ein Blob-Container in einem Azure-Speicherkonto in Ihrem aktuellen Azure-Abonnement, der mit Ihrem IoT-Hub verknüpft 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.

  • Empfangen von Benachrichtigungen für hochgeladene Dateien: Aktivieren oder Deaktivieren von Dateiuploadbenachrichtigungen.

  • 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 eine Stunde festgelegt.

  • Standard-TTL für Dateibenachrichtigungseinstellungen: Die Lebensdauer einer Datei-Upload-Benachrichtigung, bevor sie abläuft. Standardmäßig auf einen Tag festgelegt.

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

  • Dauer der Dateibenachrichtigungssperre: Die Sperrdauer für die Dateibenachrichtigungswarteschlange. Standardmäßig auf 60 Sekunden festgelegt.

  • Authentifizierungstyp: Der Typ der Authentifizierung für IoT Hub, die mit Azure Storage verwendet werden soll. Diese Einstellung bestimmt, wie Sich Ihr IoT-Hub bei Azure Storage authentifiziert und autorisiert. Der Standardwert ist die schlüsselbasierte Authentifizierung; Die vom System zugewiesenen oder vom Benutzer zugewiesenen Optionen für die Authentifizierung verwalteter Identitäten werden jedoch empfohlen. Verwaltete Identitäten stellen für Azure-Dienste eine automatisch verwaltete Identität in Microsoft Entra ID auf sichere Weise bereit.

    Hinweis

    Mit der Einstellung für den Authentifizierungstyp wird konfiguriert, wie sich Ihr IoT-Hub bei Ihrem Azure Storage-Konto authentifiziert. Geräte authentifizieren sich bei Azure Storage immer mithilfe des SAS-URI, den sie vom IoT-Hub abrufen.

Die folgenden Befehle zeigen, wie Sie die Dateiuploadeinstellungen auf Ihrem IoT-Hub konfigurieren. Diese Befehle werden aus Gründen der Übersichtlichkeit separat angezeigt, in der Regel würden Sie jedoch einen einzelnen Befehl mit allen erforderlichen Parametern für Ihr Szenario ausgeben. Geben Sie Anführungszeichen an, wenn sie in der Befehlszeile erscheinen. Fügen Sie keine geschweiften Klammern ein. Weitere Details zu den einzelnen Parametern finden Sie in der Azure CLI-Dokumentation für den Az iot Hub-Updatebefehl .

Der folgende Befehl konfiguriert das Speicherkonto und den BLOB-Container.

az iot hub update --name {your iot hub name} \
    --fileupload-storage-connectionstring "{your storage account connection string}" \
    --fileupload-storage-container-name "{your container name}" 

Mit dem folgenden Befehl wird die Gültigkeitsdauer des SAS-URIs auf die Standardeinstellung (eine Stunde) gesetzt.

az iot hub update --name {your iot hub name} \
    --fileupload-sas-ttl 1 

Mit dem folgenden Befehl werden Dateibenachrichtigungen aktiviert und die Dateibenachrichtigungseigenschaften auf ihre Standardwerte festgelegt. (Die Benachrichtigungszeit für den Dateiupload in Live wird auf eine Stunde festgelegt, und die Sperrdauer wird auf 60 Sekunden festgelegt.)

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

Der folgende Befehl konfiguriert die schlüsselbasierte Authentifizierung:

az iot hub update --name {your iot hub name} \
    --fileupload-storage-auth-type keyBased

Mit dem folgenden Befehl wird die Authentifizierung mithilfe der vom System zugewiesenen verwalteten Identität des IoT-Hubs konfiguriert. Bevor Sie diesen Befehl ausführen können, müssen Sie die vom System zugewiesene verwaltete Identität für Ihren IoT-Hub aktivieren und ihm die richtige rollenbasierte Zugriffssteuerungsrolle für Ihr Azure Storage-Konto gewähren. Informationen dazu finden Sie unter IoT Hub-Unterstützung für verwaltete Identitäten.

az iot hub update --name {your iot hub name} \
    --fileupload-storage-auth-type identityBased \
    --fileupload-storage-identity [system] 

Die folgenden Befehle rufen die vom Benutzer zugewiesenen verwalteten Identitäten ab, die auf Ihrem IoT-Hub konfiguriert sind, und konfigurieren die Authentifizierung mit einem davon. Bevor Sie eine vom Benutzer zugewiesene verwaltete Identität zur Authentifizierung verwenden können, muss sie auf Ihrem IoT-Hub konfiguriert und einer entsprechenden rollenbasierten Zugriffssteuerungsrolle für Ihr Azure Storage-Konto erteilt werden. Weitere Details und Schritte finden Sie unter IoT Hub-Unterstützung für verwaltete Identitäten.

Verwenden Sie den Befehl "az iot hub identity show ", um nach vom Benutzer zugewiesenen verwalteten Identitäten auf Ihrem IoT-Hub abzufragen.

az iot hub identity show --name {your iot hub name} --query userAssignedIdentities

Der Befehl gibt eine Auflistung der vom Benutzer zugewiesenen verwalteten Identitäten zurück, die auf Ihrem IoT-Hub konfiguriert sind. Die folgende Ausgabe zeigt eine Auflistung, die eine einzelne vom Benutzer zugewiesene verwaltete Identität enthält.

{
  "/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>"
  }
}

Mit dem folgenden Befehl wird die Authentifizierung so konfiguriert, dass die oben zugewiesene Identität des Benutzers verwendet wird.

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}"

Sie können die Einstellungen auf Ihrem IoT-Hub mit dem folgenden Befehl überprüfen:

az iot hub show --name {your iot hub name}

Verwenden Sie den folgenden Befehl, um nur die Dateiuploadeinstellungen zu überprüfen:

az iot hub show --name {your iot hub name}
    --query '[properties.storageEndpoints, properties.enableFileUploadNotifications, properties.messagingEndpoints.fileNotifications]'

In den meisten Fällen ist die Verwendung der benannten Parameter in den Azure CLI-Befehlen am einfachsten; Sie können jedoch auch Dateiuploadeinstellungen mit dem --set Parameter konfigurieren. Mit den folgenden Befehlen können Sie verstehen, wie das geht.

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

Voraussetzungen

Melden Sie sich an, und legen Sie Ihr Azure-Konto fest.

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. Möglicherweise müssen Sie jedoch weiterhin Ihr Azure-Abonnement auswählen, wenn Sie über mehrere Abonnements verfügen.

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

    Connect-AzAccount
    
  2. Wenn Sie über mehrere Azure-Abonnements verfügen, gewährt Ihnen die Anmeldung bei Azure Zugriff auf alle Azure-Abonnements, die Ihren Anmeldeinformationen zugeordnet sind. Verwenden Sie den Befehl "Get-AzSubscription ", um die für Sie verfügbaren Azure-Abonnements aufzulisten:

    Get-AzSubscription
    

    Verwenden Sie den folgenden Befehl, 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 Select-AzContext-Befehls, mit dem Sie den Abonnementnamen (Name) oder die vom Befehl "Get-AzSubscription" zurückgegebene Abonnement-ID (ID) anstelle des komplexeren Kontextnamens verwenden können, der für den Befehl "Select-AzContext" erforderlich ist.

Abrufen Ihrer Speicherkontodetails

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

Um Dateiuploads von Ihren Geräten zu konfigurieren, benötigen Sie die Verbindungszeichenfolge für ein Azure-Speicherkonto. Das Speicherkonto muss sich im selben Abonnement wie Ihr IoT-Hub befinden. Außerdem benötigen Sie den Namen eines Blob-Containers im Speicherkonto. Verwenden Sie den Befehl "Get-AzStorageAccountKey ", um Ihre Speicherkontoschlüssel abzurufen:

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

Notieren Sie sich den Schlüsselwert des Speicherkontoschlüssels "key1". Sie benötigen sie in den folgenden Schritten.

Sie können entweder einen vorhandenen BLOB-Container für Ihre Dateiuploads verwenden oder eine neue erstellen:

  • Verwenden Sie zum Auflisten der vorhandenen BLOB-Container in Ihrem Speicherkonto die Befehle "New-AzStorageContext " und " Get-AzStorageContainer ":

    $ctx = New-AzStorageContext `
        -StorageAccountName {your storage account name} `
        -StorageAccountKey {your storage account key}
    Get-AzStorageContainer -Context $ctx
    
  • Verwenden Sie zum Erstellen eines BLOB-Containers in Ihrem Speicherkonto 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 jetzt Ihren IoT-Hub so konfigurieren, dass Dateien mithilfe Ihrer Speicherkontodetails in den IoT-Hub hochgeladen werden.

Für die Konfiguration sind die folgenden Werte erforderlich:

  • Speichercontainer: Ein Blob-Container in einem Azure-Speicherkonto in Ihrem aktuellen Azure-Abonnement, der mit Ihrem IoT-Hub verknüpft 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.

  • Empfangen von Benachrichtigungen für hochgeladene Dateien: Aktivieren oder Deaktivieren von Dateiuploadbenachrichtigungen.

  • 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 eine Stunde festgelegt.

  • Standard-TTL für Dateibenachrichtigungseinstellungen: Die Gültigkeitsdauer einer Dateiuploadbenachrichtigung (Zeit bis zum Ablauf). Standardmäßig auf einen 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 ", um die Dateiuploadeinstellungen auf Ihrem IoT-Hub zu konfigurieren:

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 mit Azure Storage mithilfe des Kontoschlüssels in der Verbindungszeichenfolge. Die Authentifizierung mit vom System zugewiesenen oder vom Benutzer zugewiesenen verwalteten Identitäten ist ebenfalls verfügbar. 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. Derzeit gibt es keine Parameter für den Befehl "Set-AzIotHub ", um den Authentifizierungstyp festzulegen.