Freigeben über


Bereitstellen von WebAssembly(WASM)-Modulen und Diagrammdefinitionen

Azure IoT Operations-Datenflussdiagramme unterstützen WebAssembly(WASM)-Module für die benutzerdefinierte Datenverarbeitung am Edge. Sie können benutzerdefinierte Geschäftslogik und Datentransformationen als Teil Ihrer Datenflusspipelinen bereitstellen.

Von Bedeutung

Datenflussdiagramme unterstützen zur Zeit nur MQTT-, Kafka- und OpenTelemetry-Endpunkte. Andere Endpunkttypen wie Data Lake, Microsoft Fabric OneLake, Azure Data Explorer und lokaler Speicher werden nicht unterstützt. Weitere Informationen finden Sie unter Bekannte Probleme.

Von Bedeutung

Derzeit ist der einzige Connector, der Graphdefinitionen für die benutzerdefinierte Verarbeitung unterstützt, der HTTP/REST-Connector.

Voraussetzungen

Überblick

WASM-Module in Datenflussdiagrammen und Connectors von Azure IoT Einsatz ermöglichen Ihnen, Daten am Edge mit hoher Leistung und Sicherheit zu verarbeiten. WASM wird in einer Sandkastenumgebung ausgeführt und unterstützt Rust und Python.

Einrichten der Containerregistrierung

Azure IoT Operations benötigt eine Containerregistrierung, um WASM-Module und Graphdefinitionen abzurufen. Sie können Azure Container Registry (ACR) oder eine andere OCI-kompatible Registrierung verwenden.

Informationen zum Erstellen und Konfigurieren einer Azure-Containerregistrierung finden Sie unter Bereitstellen der Azure-Containerregistrierung.

Installieren von ORAS CLI

Verwenden Sie die ORAS CLI, um WASM-Module und Graphdefinitionen an Ihre Containerregistrierung zu übertragen. Installationsanweisungen finden Sie unter Installieren von ORAS.

Beispielmodule aus dem öffentlichen Registry abrufen

Verwenden Sie vorgefertigte Beispielmodule:

# 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

Module in Ihre Registry pushen

Sobald Sie über die Beispielmodule und Diagramme verfügen, übertragen Sie sie an ihre Containerregistrierung. Ersetzen Sie <YOUR_ACR_NAME> durch den Namen Ihrer Azure-Containerregistrierung. Um sicherzustellen, dass die Diagramme und Module im Web-UI für den Betriebsablauf sichtbar sind, fügen Sie die --config und --artifact-type Flags hinzu, wie im folgenden Beispiel gezeigt:

# 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

Tipp

Sie können auch eigene Module pushen und benutzerdefinierte Diagramme erstellen, siehe Konfiguration von benutzerdefinierten Datenflussdiagrammen.

Aktualisieren eines Moduls in einem ausgeführten Diagramm

Sie können ein WASM-Modul in einem ausgeführten Diagramm aktualisieren, ohne das Diagramm zu beenden. Dies ist nützlich, wenn Sie die Logik eines Operators aktualisieren möchten, ohne den Datenfluss zu beenden. Wenn Sie beispielsweise das Temperaturkonvertierungsmodul von Version zu 1.0.0Version 2.0.0 aktualisieren möchten, laden Sie die neue Version wie folgt hoch:

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

Das Datenflussdiagramm erfasst automatisch die neue Version des Moduls ohne zusätzliche Konfiguration. Das Diagramm wird weiterhin ohne Unterbrechung ausgeführt, und die neue Modulversion wird für nachfolgende Datenverarbeitung verwendet.

Entwickeln von benutzerdefinierten WASM-Modulen

Um benutzerdefinierte Datenverarbeitungslogik für Ihre Datenflussdiagramme zu erstellen, entwickeln Sie WebAssembly-Module in Rust oder Python. Mit benutzerdefinierten Modulen können Sie spezielle Geschäftslogik, Datentransformationen und Analysen implementieren, die in den integrierten Operatoren nicht verfügbar sind.

Umfassende Anleitungen zur Entwicklung, einschließlich:

  • Einrichten der Entwicklungsumgebung
  • Erstellen von Operatoren in Rust und Python
  • Grundlegendes zu Datenmodell und Schnittstellen
  • Erstellen und Testen Ihrer Module

Siehe Entwickeln von WebAssembly-Modulen für Datenflussdiagramme.

Ausführliche Informationen zum Erstellen und Konfigurieren der YAML-Diagrammdefinitionen, die Ihre Datenverarbeitungsworkflows definieren, finden Sie unter Konfigurieren von WebAssembly-Diagrammdefinitionen.