Skip to content

Commit f1a1ca5

Browse files
author
Pat Altimore
committed
Edit pass
1 parent 65d34fa commit f1a1ca5

File tree

3 files changed

+66
-66
lines changed

3 files changed

+66
-66
lines changed

articles/iot-operations/connect-to-cloud/howto-configure-registry-endpoint.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ ai-usage: ai-assisted
1616

1717
[!INCLUDE [kubernetes-management-preview-note](../includes/kubernetes-management-preview-note.md)]
1818

19-
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.
2020

2121
## Prerequisites
2222

2323
- 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
2525

2626
## Registry endpoint overview
2727

@@ -33,7 +33,7 @@ A registry endpoint defines the connection details and authentication method for
3333
Registry endpoints support authentication through:
3434
- System-assigned managed identity
3535
- User-assigned managed identity
36-
- Artifact pull secrets (username/password)
36+
- Artifact pull secrets (username and password)
3737
- Anonymous access (for public registries)
3838

3939
## Create a registry endpoint
@@ -110,7 +110,7 @@ resource registryEndpoint 'Microsoft.IoTOperations/instances/registryEndpoints@2
110110
}
111111
```
112112

113-
Then, deploy via Azure CLI:
113+
Deploy the Bicep file using Azure CLI:
114114

115115
```azurecli
116116
az deployment group create --resource-group <RESOURCE_GROUP> --template-file <FILE>.bicep
@@ -134,7 +134,7 @@ spec:
134134
audience: https://management.azure.com/
135135
```
136136
137-
Then apply the manifest file to the Kubernetes cluster:
137+
Apply the manifest file to the Kubernetes cluster:
138138
139139
```bash
140140
kubectl apply -f <FILE>.yaml
@@ -367,7 +367,7 @@ authentication:
367367

368368
## Azure Container Registry integration
369369

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.
371371

372372
### Prerequisites for ACR
373373

@@ -442,7 +442,7 @@ Registry endpoints also support other OCI-compatible container registries such a
442442
- AWS Elastic Container Registry (ECR)
443443
- Google Container Registry (GCR)
444444

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.
446446

447447
## Next steps
448448

articles/iot-operations/connect-to-cloud/howto-dataflow-graph-wasm.md

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -14,32 +14,32 @@ ai-usage: ai-assisted
1414
# Use WebAssembly (WASM) with data flow graphs (Preview)
1515

1616
> [!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.
1818
>
1919
> 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.
2020
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.
2222

2323
## Prerequisites
2424

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.
2828

2929
## Overview
3030

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.
3232

3333
### How WASM data flow graphs work
3434

3535
The WASM data flow implementation follows this workflow:
3636

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.
4343

4444
<!-- TODO: Add general system architecture content -->
4545

@@ -49,17 +49,17 @@ The following examples demonstrate how to set up and deploy WASM data flow graph
4949

5050
### Set up container registry
5151

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.
5353

5454
To create and configure an Azure Container Registry, see [Deploy Azure Container Registry](). <!-- TODO -->
5555

5656
### Install ORAS CLI
5757

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).
5959

6060
### Pull sample modules from public registry
6161

62-
For this preview, you can use pre-built sample modules:
62+
For this preview, you can use prebuilt sample modules:
6363

6464
```bash
6565
# Pull sample modules and graphs
@@ -95,13 +95,13 @@ oras push <your-acr-name>.azurecr.io/filter:1.0.0 filter-1.0.0.wasm
9595
```
9696

9797
> [!IMPORTANT]
98-
> 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.
9999
100100
### Create a registry endpoint
101101

102102
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).
103103

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:
105105

106106
# [Bicep](#tab/bicep)
107107

@@ -157,7 +157,7 @@ spec:
157157
---
158158
159159
> [!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.
161161
162162
### Get extension name and tenant ID
163163
@@ -178,12 +178,12 @@ The first command returns the extension name (for example, `azure-iot-operations
178178

179179
### Configure managed identity permissions
180180

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:
182182

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.
185185

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:
187187

188188
```bash
189189
# Get the IoT Operations extension managed identity
@@ -198,21 +198,21 @@ az role assignment create --role "AcrPull" --assignee $SYSTEM_ASSIGNED_MAN_ID --
198198

199199
For more information about container registry roles, see [Azure Container Registry roles and permissions](/azure/container-registry/container-registry-roles).
200200

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:
202202

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.
210210

211211
For detailed instructions, see [Assign Azure roles using the Azure portal](/azure/role-based-access-control/role-assignments-portal).
212212

213213
## Example 1: Basic deployment with one WASM module
214214

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.
216216

217217
<!-- TODO: Add simple graph YAML definition and explanation -->
218218

@@ -354,7 +354,7 @@ spec:
354354
name: temperature-destination
355355
```
356356
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:
358358

359359
```bash
360360
kubectl apply -f dataflow-graph.yaml
@@ -364,9 +364,9 @@ kubectl apply -f dataflow-graph.yaml
364364

365365
### Test the data flow
366366

367-
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.
368368

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:
370370

371371
```bash
372372
# Connect to the MQTT client pod
@@ -375,7 +375,7 @@ kubectl exec -it mqtt-client -n azure-iot-operations -- bash
375375

376376
#### Send temperature messages
377377

378-
In the first terminal session, create and run a script to send temperature data in Fahrenheit:
378+
In the first terminal session, create and run a script that sends temperature data in Fahrenheit:
379379

380380
```bash
381381
# Create and run temperature.sh from within the MQTT client pod
@@ -401,7 +401,7 @@ done
401401

402402
#### Subscribe to processed messages
403403

404-
In the second terminal session (also connected to the MQTT client pod), subscribe to the output topic to see the converted temperature values:
404+
In the second terminal session (also connected to the MQTT client pod), subscribe to the output topic to see converted temperature values:
405405

406406
```bash
407407
# Run from within the MQTT client pod
@@ -413,11 +413,11 @@ mosquitto_sub -h aio-broker -p 18883 \
413413
-D CONNECT authentication-data $(cat /var/run/secrets/tokens/broker-sat)
414414
```
415415

416-
You should see temperature data converted from Fahrenheit to Celsius by the WASM module.
416+
You see temperature data converted from Fahrenheit to Celsius by the WASM module.
417417

418418
#### Adding timestamps
419419

420-
Messages can include a timestamp property `__ts` for ordering. The format is `<timestamp>:<counter>:<nodeid>`:
420+
Messages can include a timestamp property `__ts` for ordering. The format is `<timestamp>:<counter>:<nodeid>`.
421421

422422
```bash
423423
mosquitto_pub -h aio-broker -p 18883 \
@@ -432,7 +432,7 @@ mosquitto_pub -h aio-broker -p 18883 \
432432

433433
## Example 2: Deploy a complex graph
434434

435-
This scenario demonstrates a more complex data flow graph that processes multiple data sources and includes advanced processing modules.
435+
This scenario shows a more complex data flow graph that processes multiple data sources and includes advanced processing modules.
436436

437437
<!-- TODO: Add complex graph YAML definition and explanation -->
438438

0 commit comments

Comments
 (0)