You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Registry endpoints are used by data flow graphs to pull WebAssembly (WASM) modules and graph definitions from container registries. You can configure the endpoint settings, authentication, and other settings to connect to Azure Container Registry (ACR) or other OCI-compatible registries.
19
+
Data flow graphs use registry endpoints to pull WebAssembly (WASM) modules and graph definitions from container registries. You can configure the endpoint settings, authentication, and other settings to connect to Azure Container Registry (ACR) or other OCI-compatible registries.
20
20
21
21
## Prerequisites
22
22
23
23
- An instance of [Azure IoT Operations](../deploy-iot-ops/howto-deploy-iot-operations.md)
24
-
- Access to a container registry such as Azure Container Registry
24
+
- Access to a container registry, such as Azure Container Registry
25
25
26
26
## Registry endpoint overview
27
27
@@ -33,7 +33,7 @@ A registry endpoint defines the connection details and authentication method for
33
33
Registry endpoints support authentication through:
az deployment group create --resource-group <RESOURCE_GROUP> --template-file <FILE>.bicep
@@ -134,7 +134,7 @@ spec:
134
134
audience: https://management.azure.com/
135
135
```
136
136
137
-
Then apply the manifest file to the Kubernetes cluster:
137
+
Apply the manifest file to the Kubernetes cluster:
138
138
139
139
```bash
140
140
kubectl apply -f <FILE>.yaml
@@ -367,7 +367,7 @@ authentication:
367
367
368
368
## Azure Container Registry integration
369
369
370
-
Azure Container Registry (ACR) is the recommended container registry for Azure IoT Operations. ACR provides secure, private Docker container registries with integrated authentication through Azure Active Directory.
370
+
Azure Container Registry (ACR) is the recommended container registry for Azure IoT Operations. ACR provides secure, private Docker container registries with integrated authentication through Microsoft Entra ID.
371
371
372
372
### Prerequisites for ACR
373
373
@@ -442,7 +442,7 @@ Registry endpoints also support other OCI-compatible container registries such a
442
442
- AWS Elastic Container Registry (ECR)
443
443
- Google Container Registry (GCR)
444
444
445
-
For these registries, you'll typically use artifact pull secrets for authentication unless they support Azure managed identity.
445
+
For these registries, you typically use artifact pull secrets for authentication, unless they support Azure managed identity.
Copy file name to clipboardExpand all lines: articles/iot-operations/connect-to-cloud/howto-dataflow-graph-wasm.md
+39-39Lines changed: 39 additions & 39 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,32 +14,32 @@ ai-usage: ai-assisted
14
14
# Use WebAssembly (WASM) with data flow graphs (Preview)
15
15
16
16
> [!IMPORTANT]
17
-
> WebAssembly (WASM) with data flow graphs is in **preview**. This feature is provided with limitations and shouldn't be used for production workloads.
17
+
> WebAssembly (WASM) with data flow graphs is in **preview**. This feature has limitations and isn't for production workloads.
18
18
>
19
19
> See the [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/) for legal terms that apply to Azure features that are in beta, preview, or otherwise not yet released into general availability.
20
20
21
-
Azure IoT Operations data flow graphs support WebAssembly (WASM) modules for custom data processing at the edge. This capability allows you to deploy custom business logic and data transformations as part of your data flow pipelines.
21
+
Azure IoT Operations data flow graphs support WebAssembly (WASM) modules for custom data processing at the edge. You can deploy custom business logic and data transformations as part of your data flow pipelines.
22
22
23
23
## Prerequisites
24
24
25
-
-An Azure IoT Operations instance deployed on an Arc-enabled Kubernetes cluster. For more information, see [Deploy Azure IoT Operations](../deploy-iot-ops/howto-deploy-iot-operations.md).
26
-
-Access to Azure Container Registry (ACR) for storing WASM modules and graphs.
27
-
- ORAS CLI installed for pushing WASM modules to the registry.
25
+
-Deploy an Azure IoT Operations instance on an Arc-enabled Kubernetes cluster. For more information, see [Deploy Azure IoT Operations](../deploy-iot-ops/howto-deploy-iot-operations.md).
26
+
-Use Azure Container Registry (ACR) to store WASM modules and graphs.
27
+
-Install ORAS CLI to push WASM modules to the registry.
28
28
29
29
## Overview
30
30
31
-
WebAssembly (WASM) modules in Azure IoT Operations data flow graphs enable custom data processing at the edge with high performance and security. WASM provides a sandboxed execution environment that supports multiple programming languages including Rust, C++, and AssemblyScript.
31
+
WebAssembly (WASM) modules in Azure IoT Operations data flow graphs let you process data at the edge with high performance and security. WASM runs in a sandboxed environment and supports programming languages like Rust, C++, and AssemblyScript.
32
32
33
33
### How WASM data flow graphs work
34
34
35
35
The WASM data flow implementation follows this workflow:
36
36
37
-
1.**Develop WASM modules**: Write custom processing logic in supported languages and compile to WebAssembly Component Model format
38
-
1.**Develop graph definition**: Define how data flows through the modules using YAML configuration files
39
-
1.**Store artifacts in registry**: Push compiled WASM modules to a container registry using OCI-compatible tools like ORAS
40
-
1.**Configure registry endpoints**: Set up authentication and connection details for Azure IoT Operations to access the container registry
41
-
1.**Create data flow**: Define data sources, artifact name, and destinations
42
-
1.**Deploy and execute**: Azure IoT Operations pulls WASM modules from the registry and executes them according to the graph definition
37
+
1.**Develop WASM modules**: Write custom processing logic in a supported language and compile it to the WebAssembly Component Model format.
38
+
1.**Develop graph definition**: Define how data moves through the modules by using YAML configuration files.
39
+
1.**Store artifacts in registry**: Push the compiled WASM modules to a container registry by using OCI-compatible tools like ORAS.
40
+
1.**Configure registry endpoints**: Set up authentication and connection details so Azure IoT Operations to access the container registry.
41
+
1.**Create data flow**: Define data sources, the artifact name, and destinations.
42
+
1.**Deploy and execute**: Azure IoT Operations pulls WASM modules from the registry and runs them based on the graph definition.
43
43
44
44
<!-- TODO: Add general system architecture content -->
45
45
@@ -49,17 +49,17 @@ The following examples demonstrate how to set up and deploy WASM data flow graph
49
49
50
50
### Set up container registry
51
51
52
-
Azure IoT Operations requires access to a container registry to pull WASM modules and graph definitions. You can use either Azure Container Registry (ACR) or another OCI-compatible registry.
52
+
Azure IoT Operations needs a container registry to pull WASM modules and graph definitions. You can use Azure Container Registry (ACR) or another OCI-compatible registry.
53
53
54
54
To create and configure an Azure Container Registry, see [Deploy Azure Container Registry](). <!-- TODO -->
55
55
56
56
### Install ORAS CLI
57
57
58
-
Use the ORAS CLI to push WASM modules and graph definitions to your container registry. For installation instructions, see [Install ORAS](https://oras.land/docs/installation).
58
+
Use the ORAS CLI to push WASM modules and graph definitions to your container registry. For install instructions, see [Install ORAS](https://oras.land/docs/installation).
59
59
60
60
### Pull sample modules from public registry
61
61
62
-
For this preview, you can use pre-built sample modules:
62
+
For this preview, you can use prebuilt sample modules:
> Make sure to update the ACR references in your data flow deployments if you use a different registry than the sample modules.
98
+
> Update the ACR references in your data flow deployments if you use a different registry than the sample modules.
99
99
100
100
### Create a registry endpoint
101
101
102
102
A registry endpoint defines the connection to your container registry. Data flow graphs use registry endpoints to pull WASM modules and graph definitions from container registries. For detailed information about configuring registry endpoints with different authentication methods and registry types, see [Configure registry endpoints](howto-configure-registry-endpoint.md).
103
103
104
-
For quick setup with Azure Container Registry, you can create a registry endpoint with system-assigned managed identity authentication:
104
+
For quick setup with Azure Container Registry, create a registry endpoint with system-assigned managed identity authentication:
105
105
106
106
# [Bicep](#tab/bicep)
107
107
@@ -157,7 +157,7 @@ spec:
157
157
---
158
158
159
159
> [!NOTE]
160
-
> Registry endpoints can be reused across multiple data flow graphs and other Azure IoT Operations components like Akri connectors.
160
+
> You can reuse registry endpoints across multiple data flow graphs and other Azure IoT Operations components, like Akri connectors.
161
161
162
162
### Get extension name and tenant ID
163
163
@@ -178,12 +178,12 @@ The first command returns the extension name (for example, `azure-iot-operations
178
178
179
179
### Configure managed identity permissions
180
180
181
-
To allow Azure IoT Operations to pull WASM modules from your container registry, configure the managed identity with the appropriate permissions. The IoT Operations extension uses a system-assigned managed identity that needs the `AcrPull` role on your Azure Container Registry. Important prerequisites include:
181
+
To let Azure IoT Operations pull WASM modules from your container registry, give the managed identity the right permissions. The IoT Operations extension uses a system-assigned managed identity that needs the `AcrPull` role on your Azure Container Registry. Important prerequisites include:
182
182
183
-
- Owner permissions on the Azure Container Registry
184
-
- The container registry can be in a different resource group or subscription, but must be in the same tenant as your IoT Operations deployment
183
+
- Owner permissions on the Azure Container Registry.
184
+
- The container registry can be in a different resource group or subscription, but it must be in the same tenant as your IoT Operations deployment.
185
185
186
-
Use the following commands to assign the `AcrPull` role to the IoT Operations managed identity:
186
+
Run the following commands to assign the `AcrPull` role to the IoT Operations managed identity:
187
187
188
188
```bash
189
189
# Get the IoT Operations extension managed identity
@@ -198,21 +198,21 @@ az role assignment create --role "AcrPull" --assignee $SYSTEM_ASSIGNED_MAN_ID --
198
198
199
199
For more information about container registry roles, see [Azure Container Registry roles and permissions](/azure/container-registry/container-registry-roles).
200
200
201
-
If you encounter authentication errors with the Azure CLI, you can assign permissions through the Azure portal:
201
+
If you get authentication errors with the Azure CLI, assign permissions through the Azure portal:
202
202
203
-
1.Navigate to your Azure Container Registry in the Azure portal
204
-
2. Select **Access control (IAM)** from the left menu
205
-
3. Select **Add** > **Add role assignment**
206
-
4. Choose the **AcrPull** built-in role
207
-
5. Select **User, group, or service principal** as the assign access to option
208
-
6. Search for and select your IoT Operations extension name (for example, `azure-iot-operations-4gh3y`)
209
-
7. Select **Save** to complete the role assignment
203
+
1.Go to your Azure Container Registry in the Azure portal.
204
+
1. Select **Access control (IAM)** from the menu.
205
+
1. Select **Add** > **Add role assignment**.
206
+
1. Choose the **AcrPull** built-in role.
207
+
1. Select **User, group, or service principal** as the assign access to option.
208
+
1. Search for and select your IoT Operations extension name (for example, `azure-iot-operations-4gh3y`).
209
+
1. Select **Save** to finish the role assignment.
210
210
211
211
For detailed instructions, see [Assign Azure roles using the Azure portal](/azure/role-based-access-control/role-assignments-portal).
212
212
213
213
## Example 1: Basic deployment with one WASM module
214
214
215
-
This scenario demonstrates a simple data flow that uses a WASM module to convert temperature data from Fahrenheit to Celsius. The source code for this module is available [here](). <!--PLACEHOLDER--> Instead of building the module yourself, we use the precompiled version that has already been pushed to the ACR as `graph-simple:1.0.0` in the earlier steps.
215
+
This scenario shows a simple data flow that uses a WASM module to convert temperature data from Fahrenheit to Celsius. The source code for this module is available [here](). <!--PLACEHOLDER--> Instead of building the module yourself, use the precompiled version that's already pushed to the ACR as `graph-simple:1.0.0` in earlier steps.
216
216
217
217
<!-- TODO: Add simple graph YAML definition and explanation -->
218
218
@@ -354,7 +354,7 @@ spec:
354
354
name: temperature-destination
355
355
```
356
356
357
-
Save the configuration as `dataflow-graph.yaml` and apply it to your cluster:
357
+
Save the configuration as `dataflow-graph.yaml`, then apply it to your cluster:
To test the data flow, you need to send MQTT messages from within the cluster. First, deploy the MQTT client pod by following the instructions in [Test connectivity to MQTT broker with MQTT clients](../manage-mqtt-broker/howto-test-connection.md). The MQTT client provides the necessary authentication tokens and certificates to connect to the broker.
367
+
To test the data flow, send MQTT messages from within the cluster. First, deploy the MQTT client pod by following the instructions in [Test connectivity to MQTT broker with MQTT clients](../manage-mqtt-broker/howto-test-connection.md). The MQTT client provides the authentication tokens and certificates to connect to the broker.
368
368
369
-
After deploying the MQTT client pod, open two terminal sessions and connect to the pod:
369
+
After you deploy the MQTT client pod, open two terminal sessions and connect to the pod:
0 commit comments