Share via


Uploads van IoT Hub-bestanden configureren met behulp van Azure CLI

In dit artikel leest u hoe u bestandsuploads configureert op uw IoT-hub met behulp van de Azure CLI.

Als u de functionaliteit voor het uploaden van bestanden in IoT Hub wilt gebruiken, moet u eerst een Azure-opslagaccount en blobcontainer koppelen aan uw IoT-hub. IoT Hub genereert automatisch SAS-URI's met schrijfmachtigingen voor deze blobcontainer, zodat apparaten deze kunnen gebruiken wanneer ze bestanden uploaden. Naast het opslagaccount en de blobcontainer kunt u de time-to-live instellen voor de SAS-URI en het type verificatie dat IoT Hub gebruikt met Azure Storage. U kunt ook instellingen configureren voor de optionele meldingen voor het uploaden van bestanden die IoT Hub kan leveren aan back-endservices.

Vereisten

Notitie

In dit artikel wordt gebruikgemaakt van de nieuwste versie van de Azure IoT-extensie, azure-iot. De verouderde versie heet azure-cli-iot-ext. Zorg ervoor dat er maar één versie is geïnstalleerd. U kunt de opdracht az extension list gebruiken om de momenteel geïnstalleerde extensies te valideren.

Gebruik az extension remove --name azure-cli-iot-ext om de verouderde versie van de extensie te verwijderen.

Gebruik az extension add --name azure-iot om de nieuwe versie van de extensie toe te voegen.

Gebruik az extension list om te bekijken welke installaties u hebt geïnstalleerd.

Aanmelden en uw Azure-account instellen

Meld u aan bij uw Azure-account en selecteer uw abonnement. Als u Azure Cloud Shell gebruikt, moet u zich al aanmelden. Mogelijk moet u echter nog steeds uw Azure-abonnement selecteren als u meerdere abonnementen hebt.

  1. Voer bij de opdrachtprompt deze aanmeldingsopdracht uit:

    az login
    

    Volg de instructies om te verifiëren met de code en meld u aan bij uw Azure-account via een webbrowser.

  2. Als u meerdere Azure-abonnementen hebt en u zich aanmeldt bij Azure, hebt u toegang tot alle Azure accounts die zijn gekoppeld aan uw referenties. Gebruik de volgende opdracht om de Azure-accounts weer te geven die u kunt gebruiken:

    az account list
    

    Gebruik de volgende opdracht om het abonnement te selecteren dat u wilt gebruiken om de opdrachten uit te voeren om uw IoT-hub te maken. U kunt de naam van het abonnement of de id van de uitvoer van de vorige opdracht gebruiken:

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

Gegevens van uw opslagaccount ophalen

In de volgende stappen wordt ervan uitgegaan dat u uw opslagaccount hebt gemaakt met behulp van het Resource Manager-implementatiemodel en niet het klassieke implementatiemodel.

Als u bestandsuploads vanaf uw apparaten wilt configureren, hebt u het verbindingsreeks voor een Azure Storage-account nodig. Het opslagaccount moet zich in hetzelfde abonnement bevinden als uw IoT-hub. U hebt ook de naam van een blobcontainer in het opslagaccount nodig. Gebruik de volgende opdracht om uw opslagaccountsleutels op te halen:

az storage account show-connection-string --name {your storage account name} \
  --resource-group {your storage account resource group}

De verbindingsreeks is vergelijkbaar met de volgende uitvoer:

{
  "connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName={your storage account name};AccountKey={your storage account key}"
}

Noteer de waarde van connectionString. U hebt deze nodig in de volgende stappen.

U kunt een bestaande blobcontainer gebruiken voor het uploaden van bestanden of een nieuwe maken:

  • Gebruik de volgende opdracht om de bestaande blobcontainers in uw opslagaccount weer te geven:

    az storage container list --connection-string "{your storage account connection string}"
    
  • Gebruik de volgende opdracht om een blobcontainer te maken in uw opslagaccount:

    az storage container create --name {container name} \
      --connection-string "{your storage account connection string}"
    

Uw IoT-hub configureren

U kunt nu uw IoT-hub configureren om bestanden naar de IoT-hub te uploaden met behulp van de gegevens van uw opslagaccount.

Voor de configuratie zijn de volgende waarden vereist:

  • Opslagcontainer: een blobcontainer in een Azure-opslagaccount in uw huidige Azure-abonnement om te koppelen aan uw IoT-hub. U hebt de benodigde opslagaccountgegevens opgehaald in de vorige sectie. IoT Hub genereert automatisch SAS-URI's met schrijfmachtigingen voor deze blobcontainer, zodat apparaten deze kunnen gebruiken wanneer ze bestanden uploaden.

  • Meldingen ontvangen voor geüploade bestanden: uploadmeldingen voor bestanden in- of uitschakelen.

  • SAS TTL: Deze instelling is de time-to-live van de SAS-URI's die door IoT Hub worden geretourneerd naar het apparaat. Standaard ingesteld op één uur.

  • Standaardinstelling voor bestandsmeldingen: de time-to-live van een melding voor het uploaden van bestanden voordat deze verloopt. Standaard ingesteld op één dag.

  • Maximale aantal bestandsmeldingen: het aantal keren dat de IoT Hub probeert een melding voor het uploaden van bestanden te leveren. Standaard ingesteld op 10.

  • Duur van vergrendeling van bestandsmeldingen: de vergrendelingsduur voor de bestandsmeldingswachtrij. Standaard ingesteld op 60 seconden.

  • Verificatietype: het type verificatie voor IoT Hub dat moet worden gebruikt met Azure Storage. Deze instelling bepaalt hoe uw IoT-hub wordt geverifieerd en autoriseren met Azure Storage. De standaardwaarde is verificatie op basis van sleutels; Door het systeem toegewezen en door de gebruiker toegewezen beheerde identiteiten kunnen echter ook worden gebruikt. Beheerde identiteiten bieden Azure-services met een automatisch beheerde identiteit in Microsoft Entra ID op een veilige manier. Zie ioT Hub-ondersteuning voor beheerde identiteiten voor beheerde identiteiten voor meer informatie over het configureren van beheerde identiteiten in uw IoT Hub- en Azure Storage-account. Zodra dit is geconfigureerd, kunt u een van uw beheerde identiteiten instellen voor verificatie met Azure Storage.

    Notitie

    De instelling voor het verificatietype configureert hoe uw IoT-hub wordt geverifieerd met uw Azure Storage-account. Apparaten verifiëren altijd met Azure Storage met behulp van de SAS-URI die ze ophalen uit de IoT-hub.

De volgende opdrachten laten zien hoe u de instellingen voor het uploaden van bestanden configureert op uw IoT-hub. Deze opdrachten worden voor duidelijkheid afzonderlijk weergegeven, maar doorgaans geeft u één opdracht uit met alle vereiste parameters voor uw scenario. Neem aanhalingstekens op waar ze worden weergegeven in de opdrachtregel. Neem de accolades niet op. Meer informatie over elke parameter vindt u in de Azure CLI-documentatie voor de opdracht az iot hub update .

Met de volgende opdracht configureert u het opslagaccount en de blobcontainer.

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

Met de volgende opdracht stelt u de SAS-URI-tijd in op de standaardwaarde (één uur).

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

Met de volgende opdracht worden bestandsmeldingen ingeschakeld en worden de eigenschappen van bestandsmeldingen ingesteld op de standaardwaarden. (De meldingstijd voor het uploaden van bestanden is ingesteld op één uur en de vergrendelingsduur is ingesteld op 60 seconden.)

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

Met de volgende opdracht configureert u verificatie op basis van sleutels:

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

Met de volgende opdracht configureert u verificatie met behulp van de door het systeem toegewezen beheerde identiteit van de IoT-hub. Voordat u deze opdracht kunt uitvoeren, moet u de door het systeem toegewezen beheerde identiteit voor uw IoT-hub inschakelen en deze de juiste RBAC-rol verlenen in uw Azure Storage-account. Zie IoT Hub-ondersteuning voor beheerde identiteiten voor meer informatie.

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

Met de volgende opdrachten worden de door de gebruiker toegewezen beheerde identiteiten opgehaald die zijn geconfigureerd op uw IoT-hub en worden verificatie met een van deze identiteiten geconfigureerd. Voordat u een door de gebruiker toegewezen beheerde identiteit kunt gebruiken om te verifiëren, moet deze worden geconfigureerd op uw IoT-hub en een geschikte RBAC-rol krijgen in uw Azure Storage-account. Zie IoT Hub-ondersteuning voor beheerde identiteiten voor meer informatie en stappen.

Gebruik de opdracht az iot hub identity show om een query uit te voeren op door de gebruiker toegewezen beheerde identiteiten op uw IoT-hub.

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

De opdracht retourneert een verzameling van de door de gebruiker toegewezen beheerde identiteiten die zijn geconfigureerd op uw IoT-hub. In de volgende uitvoer ziet u een verzameling die één door de gebruiker toegewezen beheerde identiteit bevat.

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

Met de volgende opdracht configureert u verificatie voor het gebruik van de door de gebruiker toegewezen identiteit hierboven.

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

U kunt de instellingen op uw IoT-hub controleren met behulp van de volgende opdracht:

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

Gebruik de volgende opdracht om alleen de instellingen voor het uploaden van bestanden te controleren:

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

In de meeste gevallen is het gebruik van de benoemde parameters in de Azure CLI-opdrachten het eenvoudigst; U kunt echter ook instellingen voor het uploaden van bestanden configureren met de --set parameter. Met de volgende opdrachten kunt u begrijpen hoe u dit kunt doen.

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

Volgende stappen