Konfigurera uppladdningar av IoT Hub-filer med PowerShell
Den här artikeln visar hur du konfigurerar filuppladdningar på din IoT-hubb med hjälp av PowerShell.
Om du vill använda filuppladdningsfunktionen i IoT Hub måste du först associera ett Azure Storage-konto och en blobcontainer med din IoT-hubb. IoT Hub genererar automatiskt SAS-URI:er med skrivbehörighet till den här blobcontainern så att enheter kan använda när de laddar upp filer. Förutom lagringskontot och blobcontainern kan du ange time-to-live för SAS-URI:n och konfigurera inställningar för de valfria filuppladdningsmeddelanden som IoT Hub kan leverera till serverdelstjänster.
Kommentar
Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Information om hur du kommer igång finns i Installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
Förutsättningar
Ett aktivt Azure-konto. Om du inte har något konto kan du skapa ett kostnadsfritt konto på bara några minuter.
En Azure IoT-hubb. Om du inte har någon IoT-hubb kan du använda cmdleten New-AzIoTHub för att skapa en eller följa stegen i Skapa en IoT-hubb.
Ett Azure-lagringskonto. Om du inte har något Azure Storage-konto kan du använda Azure Storage PowerShell-cmdletar för att skapa ett eller använda portalen för att skapa ett lagringskonto
Använd PowerShell-miljön i Azure Cloud Shell.
Om du vill kan du installera PowerShell lokalt.
- Installera Azure Az PowerShell-modulen. (Modulen installeras som standard i Azure Cloud Shell PowerShell-miljön.)
- Logga in på PowerShell med hjälp av kommandot Connect-AzAccount . Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Ytterligare inloggningsalternativ finns i Logga in med Azure PowerShell.
Logga in och ange ditt Azure-konto
Logga in på ditt Azure-konto och välj din prenumeration. Om du använder Azure Cloud Shell bör du redan vara inloggad. Du kan dock fortfarande behöva välja din Azure-prenumeration om du har flera prenumerationer.
Kör cmdleten Connect-AzAccount i PowerShell-prompten:
Connect-AzAccount
Om du har flera Azure-prenumerationer ger inloggning till Azure dig åtkomst till alla Azure-prenumerationer som är associerade med dina autentiseringsuppgifter. Använd kommandot Get-AzSubscription för att visa de Azure-prenumerationer som du kan använda:
Get-AzSubscription
Använd följande kommando för att välja den prenumeration som du vill använda för att köra kommandona för att hantera din IoT-hubb. Du kan antingen använda prenumerationsnamnet eller ID:t från utdata från föregående kommando:
Select-AzSubscription ` -Name "{your subscription name}"
Kommentar
Kommandot Select-AzSubscription är ett alias för Select-AzContext som gör att du kan använda prenumerationsnamnet (namn) eller prenumerations-ID (ID) som returneras av kommandot Get-AzSubscription i stället för det mer komplexa kontextnamnet som krävs för kommandot Select-AzContext.
Hämta information om ditt lagringskonto
Följande steg förutsätter att du har skapat ditt lagringskonto med hjälp av Resource Manager-distributionsmodellen och inte den klassiska distributionsmodellen.
För att konfigurera filuppladdningar från dina enheter behöver du niska veze för ett Azure Storage-konto. Lagringskontot måste finnas i samma prenumeration som din IoT-hubb. Du behöver också namnet på en blobcontainer i lagringskontot. Använd kommandot Get-AzStorageAccountKey för att hämta dina lagringskontonycklar:
Get-AzStorageAccountKey `
-Name {your storage account name} `
-ResourceGroupName {your storage account resource group}
Anteckna nyckelvärdet för key1-lagringskontot . Du behöver det i följande steg.
Du kan antingen använda en befintlig blobcontainer för dina filuppladdningar eller skapa en ny:
Om du vill visa en lista över befintliga blobcontainrar i ditt lagringskonto använder du kommandona New-AzStorageContext och Get-AzStorageContainer :
$ctx = New-AzStorageContext ` -StorageAccountName {your storage account name} ` -StorageAccountKey {your storage account key} Get-AzStorageContainer -Context $ctx
Om du vill skapa en blobcontainer i ditt lagringskonto använder du kommandona New-AzStorageContext och 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
Konfigurera din IoT-hubb
Nu kan du konfigurera din IoT-hubb för att ladda upp filer till IoT-hubben med hjälp av din lagringskontoinformation.
Konfigurationen kräver följande värden:
Lagringscontainer: En blobcontainer i ett Azure Storage-konto i din aktuella Azure-prenumeration som ska associeras med din IoT-hubb. Du hämtade nödvändig information om lagringskontot i föregående avsnitt. IoT Hub genererar automatiskt SAS-URI:er med skrivbehörighet till den här blobcontainern så att enheter kan använda när de laddar upp filer.
Ta emot meddelanden om uppladdade filer: Aktivera eller inaktivera meddelanden om filuppladdning.
SAS TTL: Den här inställningen är time-to-live för DE SAS-URI:er som returneras till enheten av IoT Hub. Ange till en timme som standard.
Inställningar för filaviseringsinställningar för standard-TTL: Time-to-live för en filuppladdningsavisering innan den har upphört att gälla. Ange till en dag som standard.
Maximalt antal filmeddelanden: Antalet gånger som IoT Hub försöker leverera ett meddelande om filuppladdning. Ange till 10 som standard.
Använd kommandot Set-AzIotHub för att konfigurera filuppladdningsinställningarna på din IoT-hubb:
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
Kommentar
Som standard autentiserar IoT Hub med Azure Storage med hjälp av kontonyckeln i niska veze. Autentisering med antingen systemtilldelade eller användartilldelade hanterade identiteter är också tillgänglig. Hanterade identiteter ger Azure-tjänster en automatiskt hanterad identitet i Microsoft Entra ID på ett säkert sätt. Mer information finns i IoT Hub-stöd för hanterade identiteter. För närvarande finns det inga parametrar i Set-AzIotHub-kommandot för att ange autentiseringstypen. I stället kan du använda antingen Azure-portalen eller Azure CLI.