Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule pokazano, jak skonfigurować przekazywanie plików w centrum IoT przy użyciu interfejsu wiersza polecenia platformy Azure.
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 URI sygnatur dostępu współdzielonego z uprawnieniami do zapisu w tym kontenerze obiektów blob, aby urządzenia mogły ich używać przy przekazywaniu plików. Oprócz konta magazynowego Azure i kontenera obiektów blob, można ustawić czas wygaśnięcia identyfikatora URI sygnatury dostępu współdzielonego oraz typ uwierzytelniania używany przez IoT Hub z Azure Storage. Możesz również skonfigurować ustawienia dla opcjonalnych powiadomień przekazywania plików, które usługa IoT Hub może dostarczać do usług zaplecza.
Wymagania wstępne
Aktywne konto platformy Azure. Jeśli go nie masz, możesz utworzyć bezpłatne konto w zaledwie kilka minut.
Centrum IoT w ramach subskrypcji platformy Azure. Jeśli nie masz jeszcze centrum, możesz wykonać kroki opisane w temacie Tworzenie centrum IoT Hub.
Konto usługi Azure Storage z kontenerem. Jeśli nie masz konta usługi Azure Storage, możesz go utworzyć przy użyciu interfejsu wiersza polecenia platformy Azure. Aby uzyskać więcej informacji, zobacz temat Tworzenie konta.
Użyj środowiska Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Rozpoczynanie pracy z usługą Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Uwierzytelnianie na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Używanie rozszerzeń i zarządzanie nimi za pomocą interfejsu wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
Uwaga
W tym artykule jest używana najnowsza wersja rozszerzenia Usługi Azure IoT o nazwie azure-iot
. Starsza wersja nosi nazwę azure-cli-iot-ext
. Jednocześnie powinna być zainstalowana tylko jedna wersja. Możesz użyć polecenia az extension list
, aby zweryfikować aktualnie zainstalowane rozszerzenia.
Użyj az extension remove --name azure-cli-iot-ext
polecenia , aby usunąć starszą wersję rozszerzenia.
Użyj az extension add --name azure-iot
polecenia , aby dodać nową wersję rozszerzenia.
Aby sprawdzić, jakie rozszerzenia są obecnie zainstalowane, użyj polecenia az extension list
.
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 uruchom polecenie logowania:
az login
Postępuj zgodnie z instrukcjami w celu uwierzytelnienia przy użyciu kodu i zaloguj się na konto platformy Azure za pośrednictwem przeglądarki internetowej.
Jeśli masz wiele subskrypcji platformy Azure, zalogowanie się do platformy Azure zapewnia dostęp do wszystkich kont platformy Azure skojarzonych z poświadczeniami użytkownika. Użyj następującego polecenia, aby wyświetlić listę kont platformy Azure dostępnych do użycia:
az account list
Użyj następującego polecenia, aby wybrać subskrypcję, której chcesz użyć do uruchomienia poleceń w celu utworzenia centrum IoT. Można użyć nazwy subskrypcji lub identyfikatora z danych wyjściowych poprzedniego polecenia:
az account set --subscription {your subscription name or id}
Konfigurowanie dostępu do konta magazynowego
W poniższych krokach założono, że konto magazynu zostało utworzone przy użyciu modelu wdrażania Resource Manager, a nie modelu klasycznego.
Aby skonfigurować przesyłanie plików z urządzeń, musisz nadać swojemu IoT Hub uprawnienia dostępu do konta usługi Azure Storage. Konto przechowywania musi znajdować się w tej samej subskrypcji co centrum IoT. Potrzebna jest również nazwa kontenera obiektów blob w koncie magazynowym.
Aby zapewnić uprawnienia dostępu, można użyć uwierzytelniania opartego na kluczach lub tożsamości. Firma Microsoft zaleca uwierzytelnianie oparte na tożsamościach jako bezpieczniejszą opcję.
Uwierzytelnianie oparte na kluczach
W przypadku uwierzytelniania opartego na kluczach podaj ciąg połączenia dla konta magazynowego. Użyj polecenia az storage account show-connection-string, aby pobrać klucze konta magazynu.
Zanotuj wartość parametru connectionString
. Ciąg połączenia wygląda podobnie do następującego wyniku:
{
"connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName={your_storage_account_name};AccountKey={your_storage_account_key}"
}
Uwierzytelnianie na podstawie tożsamości
Do uwierzytelniania opartego na tożsamościach można użyć tożsamości zarządzanych przypisanych przez system lub tożsamości zarządzanych przypisanych przez użytkownika. Aby uzyskać więcej informacji, zobacz Obsługa usługi IoT Hub dla tożsamości zarządzanych.
Użyj polecenia az role assignment create, aby przypisać rolę do tożsamości zarządzanej. Aby uzyskać więcej informacji, zobacz Przypisywanie roli w Azure w celu uzyskania dostępu do danych blobów.
Skonfiguruj centrum IoT Hub
Teraz możesz skonfigurować IoT hub, aby umożliwić przesyłanie plików do IoT hub przy użyciu szczegółów konta pamięci masowej.
Konfiguracja wymaga następujących wartości:
Kontener magazynowy: Blob container na koncie usługi Azure Storage w Twojej bieżącej subskrypcji Azure do powiązania z twoim IoT Hub. W poprzedniej sekcji pobrano niezbędne informacje o koncie przechowywania. 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.
SAS TTL: to ustawienie określa czas życia 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 życia powiadomień o przesyłaniu plików: czas życia powiadomienia o przesłaniu plików przed jego wygaśnięciem. Ustaw wartość na jeden dzień domyślnie.
Maksymalna liczba prób dostarczenia powiadomienia o pliku: liczba razy, ile razy IoT Hub próbuje dostarczyć powiadomienie o przekazaniu pliku. Domyślnie ustawione na 10.
Okres blokady powiadomień dotyczących plików: okres blokady kolejki powiadomień dotyczących plików. Domyślnie ustaw wartość 60 sekund.
Typ uwierzytelniania: typ uwierzytelniania usługi IoT Hub do użycia z usługą Azure Storage. To ustawienie określa sposób uwierzytelniania i autoryzacji centrum IoT w usłudze Azure Storage. Wartość domyślna to uwierzytelnianie oparte na kluczach; zalecane są jednak opcje uwierzytelniania tożsamości zarządzanej przypisane przez system lub przypisane przez użytkownika. Zarządzane tożsamości zapewniają usługom Azure automatycznie zarządzaną tożsamość w ramach Microsoft Entra ID w sposób bezpieczny.
Uwaga
Ustawienie typu uwierzytelniania konfiguruje sposób uwierzytelniania centrum IoT Hub przy użyciu konta usługi Azure Storage. Urządzenia zawsze uwierzytelniają się w usłudze Azure Storage przy użyciu identyfikatora URI sygnatury dostępu współdzielonego (SAS) uzyskiwanego z centrum IoT.
Poniższe polecenia pokazują, jak skonfigurować ustawienia przekazywania plików w centrum IoT. Te polecenia są wyświetlane oddzielnie w celu zapewnienia przejrzystości, ale zazwyczaj należy wydać jedno polecenie ze wszystkimi wymaganymi parametrami dla danego scenariusza. Uwzględnij cudzysłowy tam, gdzie występują w wierszu poleceń. Nie dołączaj nawiasów klamrowych. Więcej szczegółów na temat każdego parametru można znaleźć w dokumentacji interfejsu wiersza polecenia platformy Azure dla polecenia az iot hub update .
Następujące polecenie konfiguruje konto magazynowania i kontener obiektów blob.
az iot hub update --name {your iot hub name} \
--fileupload-storage-connectionstring "{your storage account connection string}" \
--fileupload-storage-container-name "{your container name}"
Następujące polecenie ustawia czas wygaśnięcia SAS URI na wartość domyślną (jedna godzina).
az iot hub update --name {your iot hub name} \
--fileupload-sas-ttl 1
Następujące polecenie włącza powiadomienia dotyczące plików i ustawia właściwości powiadomienia pliku na wartości domyślne. (Czas przekazywania powiadomień o przekazaniu pliku na żywo jest ustawiony na jedną godzinę, a czas trwania blokady to 60 sekund).
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
Następujące polecenie konfiguruje uwierzytelnianie oparte na kluczach:
az iot hub update --name {your iot hub name} \
--fileupload-storage-auth-type keyBased
Następujące polecenie konfiguruje uwierzytelnianie przy użyciu przypisanej przez system tożsamości zarządzanej centrum IoT Hub. Przed uruchomieniem tego polecenia należy włączyć tożsamość zarządzaną przypisaną przez system dla centrum IoT i przyznać jej prawidłową rolę kontroli dostępu opartej na rolach na koncie usługi Azure Storage. Aby dowiedzieć się, jak to zrobić, zobacz Obsługa usługi IoT Hub dla tożsamości zarządzanych.
az iot hub update --name {your iot hub name} \
--fileupload-storage-auth-type identityBased \
--fileupload-storage-identity [system]
Następujące polecenia pobierają tożsamości zarządzane przypisane przez użytkownika skonfigurowane w centrum IoT i konfigurują uwierzytelnianie przy użyciu jednego z nich. Aby można było uwierzytelnić tożsamość zarządzaną przypisaną przez użytkownika, należy ją skonfigurować w centrum IoT i przyznać odpowiednią rolę kontroli dostępu opartej na rolach na koncie usługi Azure Storage. Aby uzyskać więcej szczegółów i kroków, zobacz Obsługa usługi IoT Hub dla tożsamości zarządzanych.
Aby wykonać zapytanie dotyczące przypisanych przez użytkownika tożsamości zarządzanych w centrum IoT, użyj polecenia az iot hub identity show.
az iot hub identity show --name {your iot hub name} --query userAssignedIdentities
Polecenie zwraca kolekcję przypisanych przez użytkownika tożsamości zarządzanych skonfigurowanych w hubie IoT. Poniższe dane wyjściowe przedstawiają kolekcję zawierającą jedną tożsamość zarządzaną przypisaną przez użytkownika.
{
"/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>"
}
}
Następujące polecenie konfiguruje uwierzytelnianie w celu używania tożsamości przypisanej przez użytkownika powyżej.
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}"
Możesz przejrzeć ustawienia w centrum IoT Hub przy użyciu następującego polecenia:
az iot hub show --name {your iot hub name}
Aby przejrzeć tylko ustawienia przekazywania plików, użyj następującego polecenia:
az iot hub show --name {your iot hub name}
--query '[properties.storageEndpoints, properties.enableFileUploadNotifications, properties.messagingEndpoints.fileNotifications]'
W większości sytuacji użycie nazwanych parametrów w poleceniach interfejsu wiersza polecenia platformy Azure jest najłatwiejsze. Można jednak również skonfigurować ustawienia przekazywania plików za pomocą parametru --set
. Poniższe polecenia mogą pomóc zrozumieć, jak to zrobić.
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