Konfigurowanie przekazywania plików usługi IoT Hub przy użyciu programu PowerShell
W tym artykule przedstawiono sposób konfigurowania przekazywania plików w centrum IoT przy użyciu programu PowerShell.
Aby użyć funkcji przekazywania plików w usłudze IoT Hub, musisz najpierw skojarzyć konto usługi Azure Storage i kontener obiektów blob z centrum IoT Hub. Usługa IoT Hub automatycznie generuje identyfikatory URI sygnatur dostępu współdzielonego z uprawnieniami do zapisu w tym kontenerze obiektów blob dla urządzeń do użycia podczas przekazywania plików. Oprócz konta magazynu i kontenera obiektów blob można ustawić czas wygaśnięcia dla identyfikatora URI sygnatury dostępu współdzielonego i skonfigurować ustawienia opcjonalnych powiadomień przekazywania plików, które usługa IoT Hub może dostarczać do usług zaplecza.
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Wymagania wstępne
Aktywne konto platformy Azure. Jeśli go nie masz, możesz utworzyć bezpłatne konto w zaledwie kilka minut.
Centrum Azure IoT Hub. Jeśli nie masz centrum IoT, możesz użyć polecenia cmdlet New-AzIoTHub, aby je utworzyć lub wykonać kroki opisane w temacie Tworzenie centrum IoT Hub.
Konto usługi Azure Storage. Jeśli nie masz konta usługi Azure Storage, możesz użyć poleceń cmdlet programu PowerShell usługi Azure Storage, aby utworzyć konto magazynu lub użyć portalu do utworzenia konta magazynu
Użyj środowiska programu PowerShell w usłudze Azure Cloud Shell.
Jeśli wolisz, zainstaluj program PowerShell lokalnie.
- Zainstaluj moduł Azure Az programu PowerShell. (Moduł jest instalowany domyślnie w środowisku programu PowerShell usługi Azure Cloud Shell).
- Zaloguj się do programu PowerShell przy użyciu polecenia Connect-AzAccount . Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać dodatkowe opcje logowania, zobacz Logowanie się przy użyciu programu Azure PowerShell.
Logowanie się i ustawianie konta platformy Azure
Zaloguj się do konta platformy Azure i wybierz subskrypcję. Jeśli używasz usługi Azure Cloud Shell, musisz być już zalogowany; Jednak nadal może być konieczne wybranie subskrypcji platformy Azure, jeśli masz wiele subskrypcji.
W wierszu polecenia programu PowerShell uruchom polecenie cmdlet Connect-AzAccount :
Connect-AzAccount
Jeśli masz wiele subskrypcji platformy Azure, logowanie się do platformy Azure zapewnia dostęp do wszystkich subskrypcji platformy Azure skojarzonych z poświadczeniami. Użyj polecenia Get-AzSubscription, aby wyświetlić listę subskrypcji platformy Azure dostępnych do użycia:
Get-AzSubscription
Użyj następującego polecenia, aby wybrać subskrypcję, której chcesz użyć do uruchomienia poleceń do zarządzania centrum IoT. Można użyć nazwy subskrypcji lub identyfikatora z danych wyjściowych poprzedniego polecenia:
Select-AzSubscription ` -Name "{your subscription name}"
Uwaga
Polecenie Select-AzSubscription jest aliasem polecenia Select-AzContext, który umożliwia użycie nazwy subskrypcji (Name) lub identyfikatora subskrypcji (Id) zwróconego przez polecenie Get-AzSubscription, a nie bardziej złożoną nazwę kontekstu wymaganą dla polecenia Select-AzContext.
Pobieranie szczegółów konta magazynu
W poniższych krokach założono, że konto magazynu zostało utworzone przy użyciu modelu wdrażania przy użyciu usługi Resource Manager, a nie klasycznego modelu wdrażania.
Aby skonfigurować przekazywanie plików z urządzeń, potrzebujesz parametry połączenia dla konta usługi Azure Storage. Konto magazynu musi znajdować się w tej samej subskrypcji co centrum IoT. Potrzebna jest również nazwa kontenera obiektów blob na koncie magazynu. Użyj polecenia Get-AzStorageAccountKey, aby pobrać klucze konta magazynu:
Get-AzStorageAccountKey `
-Name {your storage account name} `
-ResourceGroupName {your storage account resource group}
Zanotuj wartość klucza konta magazynu key1 . Są one potrzebne w poniższych krokach.
Możesz użyć istniejącego kontenera obiektów blob do przekazywania plików lub utworzyć nowy:
Aby wyświetlić listę istniejących kontenerów obiektów blob na koncie magazynu, użyj poleceń New-AzStorageContext i Get-AzStorageContainer :
$ctx = New-AzStorageContext ` -StorageAccountName {your storage account name} ` -StorageAccountKey {your storage account key} Get-AzStorageContainer -Context $ctx
Aby utworzyć kontener obiektów blob na koncie magazynu, użyj poleceń New-AzStorageContext i 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
Konfigurowanie centrum IoT Hub
Teraz możesz skonfigurować centrum IoT w celu przekazania plików do centrum IoT Hub przy użyciu szczegółów konta magazynu.
Konfiguracja wymaga następujących wartości:
Kontener magazynu: kontener obiektów blob na koncie usługi Azure Storage w bieżącej subskrypcji platformy Azure do skojarzenia z centrum IoT Hub. W poprzedniej sekcji pobrano niezbędne informacje o koncie magazynu. Usługa IoT Hub automatycznie generuje identyfikatory URI sygnatur dostępu współdzielonego z uprawnieniami do zapisu w tym kontenerze obiektów blob dla urządzeń do użycia podczas przekazywania plików.
Otrzymywanie powiadomień o przekazanych plikach: włączanie lub wyłączanie powiadomień dotyczących przekazywania plików.
Czas wygaśnięcia sygnatury dostępu współdzielonego: to ustawienie jest czasem wygaśnięcia identyfikatorów URI sygnatur dostępu współdzielonego zwracanych do urządzenia przez usługę IoT Hub. Ustaw wartość domyślnie na jedną godzinę.
Domyślny czas wygaśnięcia ustawień powiadomień dotyczących plików: czas wygaśnięcia powiadomienia o przekazaniu pliku przed jego wygaśnięciem. Ustaw wartość na jeden dzień domyślnie.
Maksymalna liczba dostarczania powiadomień o pliku: liczba prób dostarczenia powiadomienia o przekazaniu pliku w usłudze IoT Hub. Domyślnie ustaw wartość 10.
Użyj polecenia Set-AzIotHub, aby skonfigurować ustawienia przekazywania plików w centrum IoT:
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
Uwaga
Domyślnie usługa IoT Hub uwierzytelnia się w usłudze Azure Storage przy użyciu klucza konta w parametry połączenia. Uwierzytelnianie przy użyciu tożsamości zarządzanych przypisanych przez system lub przypisanych przez użytkownika jest również dostępne. Zarządzane tożsamości zapewniają usługom Azure automatycznie zarządzaną tożsamość w Microsoft Entra ID w bezpieczny sposób. Aby dowiedzieć się więcej, zobacz Obsługa usługi IoT Hub dla tożsamości zarządzanych. Obecnie nie ma parametrów w poleceniu Set-AzIotHub , aby ustawić typ uwierzytelniania. Zamiast tego możesz użyć witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.