Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wykresy przepływu danych operacji usługi Azure IoT obsługują moduły WebAssembly (WASM) na potrzeby niestandardowego przetwarzania danych na urządzeniach brzegowych. Możesz wdrożyć niestandardową logikę biznesową i przekształcenia danych w ramach potoków przepływu danych.
Ważne
Wykresy przepływu danych obsługują obecnie tylko punkty końcowe MQTT, Kafka i OpenTelemetry. Inne typy punktów końcowych, takie jak Data Lake, Microsoft Fabric OneLake, Azure Data Explorer i Local Storage, nie są obsługiwane. Aby uzyskać więcej informacji, zobacz Znane problemy.
Ważne
Obecnie jedynym łącznikiem obsługującym definicje grafu na potrzeby przetwarzania niestandardowego jest łącznik HTTP/REST.
Wymagania wstępne
- Wdróż instancję operacyjną Azure IoT w klastrze Kubernetes z włączoną obsługą Arc. Aby uzyskać więcej informacji, zobacz Wdrażanie operacji usługi Azure IoT.
- Użyj rejestru kontenerów, takiego jak Usługa Azure Container Registry (ACR), aby przechowywać moduły i grafy WASM.
- Skonfiguruj punkt końcowy rejestru, aby umożliwić instancji operacyjnej Azure IoT uzyskać dostęp do rejestru kontenerów. Aby uzyskać więcej informacji, zobacz Konfigurowanie punktów końcowych rejestru.
- Zainstaluj interfejs wiersza polecenia OCI Registry As Storage (ORAS), aby wypchnąć moduły WASM do rejestru.
- Twórz niestandardowe moduły WASM, postępując zgodnie ze wskazówkami w artykule Build WASM modules for data flows in VS Code lub Develop WebAssembly (WASM) modules and graph definitions for data flow graphs.
Przegląd
Moduły WASM w grafach przepływu danych i łącznikach operacji Azure IoT umożliwiają przetwarzanie danych na urządzeniach brzegowych przy wysokiej wydajności i bezpieczeństwie. Program WASM działa w środowisku w trybie piaskownicy i obsługuje język Rust i Python.
Konfigurowanie rejestru kontenerów
Operacje usługi Azure IoT wymagają rejestru kontenerów w celu ściągnięcia modułów WASM i definicji grafu. Możesz użyć usługi Azure Container Registry (ACR) lub innego rejestru zgodnego z protokołem OCI.
Aby utworzyć i skonfigurować usługę Azure Container Registry, zobacz Wdrażanie usługi Azure Container Registry.
Instalowanie interfejsu wiersza polecenia USŁUGI ORAS
Użyj interfejsu wiersza polecenia ORAS, aby wypchnąć moduły WASM i definicje grafu do rejestru kontenerów. Aby uzyskać instrukcje dotyczące instalacji, zobacz Instalowanie usługi ORAS.
Ściąganie przykładowych modułów z rejestru publicznego
Użyj wstępnie utworzonych przykładowych modułów:
# Pull sample modules and graphs
oras pull ghcr.io/azure-samples/explore-iot-operations/graph-simple:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/graph-complex:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/temperature:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/window:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/snapshot:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/format:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/humidity:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/collection:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/enrichment:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/filter:1.0.0
Wypychanie modułów do rejestru
Po utworzeniu przykładowych modułów i grafów, prześlij je do rejestru kontenerów. Zastąp <YOUR_ACR_NAME> nazwą Twojego Azure Container Registry. Aby upewnić się, że wykresy i moduły są widoczne w interfejsie użytkownika operacji w sieci Web, dodaj flagi --config i --artifact-type, jak pokazano w poniższym przykładzie.
# Log in to your ACR
az acr login --name <YOUR_ACR_NAME>
# Push modules to your registry
oras push <YOUR_ACR_NAME>.azurecr.io/graph-simple:1.0.0 --config /dev/null:application/vnd.microsoft.aio.graph.v1+yaml graph-simple.yaml:application/yaml --disable-path-validation
oras push <YOUR_ACR_NAME>.azurecr.io/graph-complex:1.0.0 --config /dev/null:application/vnd.microsoft.aio.graph.v1+yaml graph-complex.yaml:application/yaml --disable-path-validation
oras push <YOUR_ACR_NAME>.azurecr.io/temperature:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm temperature-1.0.0.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/window:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm window-1.0.0.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/snapshot:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm snapshot-1.0.0.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/format:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm format-1.0.0.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/humidity:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm humidity-1.0.0.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/collection:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm collection-1.0.0.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/enrichment:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm enrichment-1.0.0.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/filter:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm filter-1.0.0.wasm:application/wasm
Wskazówka
Możesz również wypchnąć własne moduły i utworzyć wykresy niestandardowe. Zobacz Konfiguracja niestandardowych wykresów przepływu danych.
Aktualizowanie modułu w uruchomionym grafie
Moduł WASM można zaktualizować w uruchomionym grafie bez zatrzymywania grafu. Jest to przydatne, gdy chcesz zaktualizować logikę operatora bez zatrzymywania przepływu danych. Na przykład, aby zaktualizować moduł konwersji temperatury z wersji 1.0.0 na 2.0.0, przekaż nową wersję w następujący sposób:
oras push <YOUR_ACR_NAME>.azurecr.io/temperature:2.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm temperature-2.0.0.wasm:application/wasm
Wykres przepływu danych automatycznie pobiera nową wersję modułu bez dodatkowej konfiguracji. Graf nadal działa bez przerwy, a nowa wersja modułu jest używana do późniejszego przetwarzania danych.
Opracowywanie niestandardowych modułów WASM
Aby utworzyć niestandardową logikę przetwarzania danych dla grafów przepływu danych, utwórz moduły WebAssembly w języku Rust lub Python. Moduły niestandardowe umożliwiają implementowanie wyspecjalizowanej logiki biznesowej, przekształceń danych i analiz, które nie są dostępne w wbudowanych operatorach.
Aby uzyskać kompleksowe wskazówki dotyczące programowania, w tym:
- Konfigurowanie środowiska projektowego
- Tworzenie operatorów w języku Rust i Python
- Omówienie modelu danych i interfejsów
- Kompilowanie i testowanie modułów
Aby uzyskać szczegółowe informacje na temat tworzenia i konfigurowania definicji grafu YAML definiujących przepływy pracy przetwarzania danych, zobacz Konfigurowanie definicji grafu zestawu WebAssembly.