Skip to content

Commit cd9a893

Browse files
author
Pat Altimore
committed
Update steps
1 parent a4af2cc commit cd9a893

File tree

2 files changed

+25
-29
lines changed

2 files changed

+25
-29
lines changed

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

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,38 +14,38 @@ 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 has limitations and isn't for production workloads.
18-
>
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.
17+
> WebAssembly (WASM) with data flow graphs is in **preview**. This feature has limitations and isn't for production workloads.
18+
>
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 not yet released into general availability.
2020
2121
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

2525
- 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).
2626
- Use Azure Container Registry (ACR) to store WASM modules and graphs.
27-
- Install ORAS CLI to push WASM modules to the registry.
27+
- Install the ORAS CLI to push WASM modules to the registry.
2828

2929
## Overview
3030

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.
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 such as Rust, C++, and AssemblyScript.
3232

3333
### How WASM data flow graphs work
3434

3535
The WASM data flow implementation follows this workflow:
3636

3737
1. **Develop WASM modules**: Write custom processing logic in a supported language and compile it to the WebAssembly Component Model format.
3838
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.
39+
1. **Store artifacts in registry**: Push the compiled WASM modules to a container registry by using OCI-compatible tools such as ORAS.
40+
1. **Configure registry endpoints**: Set up authentication and connection details so Azure IoT Operations can access the container registry.
4141
1. **Create data flow**: Define data sources, the artifact name, and destinations.
4242
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

4646
## Get started with examples
4747

48-
The following examples demonstrate how to set up and deploy WASM data flow graphs for common scenarios. These examples use hardcoded values and simplified configurations to help you get started quickly.
48+
These examples show how to set up and deploy WASM data flow graphs for common scenarios. The examples use hardcoded values and simplified configurations so you can get started quickly.
4949

5050
### Set up container registry
5151

@@ -55,11 +55,11 @@ To create and configure an Azure Container Registry, see [Deploy Azure Container
5555

5656
### Install ORAS CLI
5757

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

6060
### Pull sample modules from public registry
6161

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

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

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

@@ -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 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:
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. Make sure you have the following prerequisites:
182182

183183
- Owner permissions on the Azure Container Registry.
184184
- 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-
Run the following commands to assign the `AcrPull` role to the IoT Operations managed identity:
186+
Run these commands to assign the `AcrPull` role to the IoT Operations managed identity:
187187

188188
```bash
189189
# Get the IoT Operations extension managed identity
@@ -198,7 +198,7 @@ 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 get authentication errors with the Azure CLI, assign permissions through the Azure portal:
201+
If you get authentication errors with the Azure CLI, assign permissions in the Azure portal:
202202

203203
1. Go to your Azure Container Registry in the Azure portal.
204204
1. Select **Access control (IAM)** from the menu.
@@ -354,7 +354,7 @@ spec:
354354
name: temperature-destination
355355
```
356356
357-
Save the configuration as `dataflow-graph.yaml`, then apply it to your cluster:
357+
Save the configuration as `dataflow-graph.yaml`, and then apply it to your cluster:
358358

359359
```bash
360360
kubectl apply -f dataflow-graph.yaml
@@ -366,7 +366,7 @@ kubectl apply -f dataflow-graph.yaml
366366

367367
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 you deploy 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 that sends temperature data in Fahrenheit:
378+
In the first terminal session, create and run a script to send 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 converted temperature values:
404+
In the second terminal session (also connected to the MQTT client pod), subscribe to the output topic to see the converted temperature values:
405405

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

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

418418
#### Adding timestamps
419419

articles/iot-operations/manage-mqtt-broker/howto-broker-persistence.md

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,15 @@ The MQTT broker uses a persistent volume (PV) to store data on disk. Two setting
5151
5252
# [Azure portal](#tab/portal)
5353

54-
:::image type="content" source="media/howto-broker-persistence/data-persistence-deploy.png" alt-text="[Screenshot showing data persistence options during deployment in the Azure portal]":::
5554

5655
To configure volume settings in the Azure portal:
5756

5857
1. During IoT Operations deployment, navigate to the **MQTT Broker** configuration section.
5958
2. In the **Data Persistence** settings:
60-
- Set the **Maximum Size** for the persistent volume (required).
61-
- Optionally configure **Persistent Volume Claim Spec** settings for custom storage class requirements.
59+
- Set the **Maximum Size** for the persistent volume (required).
60+
- Optionally configure **Persistent Volume Claim Spec** settings for custom storage class requirements.
61+
62+
:::image type="content" source="media/howto-broker-persistence/data-persistence-deploy.png" alt-text="[Screenshot showing data persistence options during deployment in the Azure portal]":::
6263

6364
# [Azure CLI](#tab/azurecli)
6465

@@ -94,16 +95,11 @@ Encryption is optional and is on by default. You can turn off encryption if you
9495

9596
# [Azure portal](#tab/portal)
9697

97-
To configure encryption settings in the Azure portal:
98-
99-
1. During IoT Operations deployment, navigate to the **MQTT Broker** configuration section.
100-
2. In the **Data Persistence** settings:
101-
- Toggle **Encryption** to enable or disable data encryption.
102-
- By default, encryption is enabled using AES-256-GCM.
98+
Encryption is enabled by default when deploying using the Azure portal. you can disable encryption in the broker configuration file if you deploy using Azure CLI.
10399

104100
# [Azure CLI](#tab/azurecli)
105101

106-
To disable encryption using Azure CLI, add the following to your Broker configuration file:
102+
To disable encryption using Azure CLI, add the following to your Broker configuration file when using the `--broker-config-file` flag with the [az iot ops create](/cli/azure/iot/ops#az-iot-ops-create) command:
107103

108104
```json
109105
{

0 commit comments

Comments
 (0)