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
You can deploy Azure IoT Edge nodes across networks organized in hierarchical layers. Each layer in a hierarchy is a gateway device that handles messages and requests from devices in the layer beneath it. This configuration is also known as *nested edge*.
17
+
Deploy Azure IoT Edge nodes across networks organized in hierarchical layers. Each layer in a hierarchy is a gateway device that handles messages and requests from devices in the layer beneath it. This configuration is also known as *nested edge*.
18
18
19
-
You can structure a hierarchy of devices so that only the top layer has connectivity to the cloud, and the lower layers can only communicate with adjacent north and south layers. This network layering is the foundation of most industrial networks, which follow the [ISA-95 standard](https://en.wikipedia.org/wiki/ANSI/ISA-95).
19
+
Structure a hierarchy of devices so that only the top layer has connectivity to the cloud, and the lower layers can communicate only with adjacent north and south layers. This network layering is the foundation of most industrial networks, which follow the [ISA-95 standard](https://en.wikipedia.org/wiki/ANSI/ISA-95).
20
20
21
21
22
-
This tutorial walks you through creating a hierarchy of IoT Edge devices using IoT Edge for Linux on Windows, deploying IoT Edge runtime containers to your devices, and configuring your devices locally. You do the following tasks:
22
+
This tutorial shows you how to create a hierarchy of IoT Edge devices using IoT Edge for Linux on Windows, deploy IoT Edge runtime containers to your devices, and configure your devices locally. In this tutorial, you do the following tasks:
23
23
24
24
> [!div class="checklist"]
25
25
>
@@ -42,7 +42,7 @@ In this tutorial, the following network layers are defined:
42
42
43
43
***Lower layers**: IoT Edge devices at layers below the top layer can't connect directly to the cloud. They need to go through one or more intermediary IoT Edge devices to send and receive data.
44
44
45
-
This tutorial uses a twodevice hierarchy for simplicity. The **top layer device** represents a device at the top layer of the hierarchy that can connect directly to the cloud. This device is referred to as the **parent device**. The **lower layer device** represents a device at the lower layer of the hierarchy that can't connect directly to the cloud. You can add more devices to represent your production environment, as needed. Devices at lower layers are referred to as**child devices**.
45
+
This tutorial uses a two-device hierarchy for simplicity. The **top layer device** represents a device at the top layer of the hierarchy that can connect directly to the cloud. This device is called the **parent device**. The **lower layer device** represents a device at the lower layer of the hierarchy that can't connect directly to the cloud. Add more devices to represent your production environment as needed. Devices at lower layers are called**child devices**.
46
46
47
47

48
48
@@ -53,18 +53,18 @@ This tutorial uses a two device hierarchy for simplicity. The **top layer device
53
53
54
54
To create a hierarchy of IoT Edge devices, you need:
55
55
56
-
* A Bash shell in Azure Cloud Shell using Azure CLI v2.3.1 with the Azure IoT extension v0.10.6 or higher installed. This tutorial uses the [Azure Cloud Shell](../cloud-shell/overview.md). To see your current versions of the Azure CLI modules and extensions, run [az version](/cli/azure/reference-index?#az-version).
57
-
* Two Windows devices running Azure IoT Edge for Linux on Windows. Both devices should be deployed using an **external virtual switch**.
56
+
* A Bash shell in Azure Cloud Shell using Azure CLI v2.3.1 with the Azure IoT extension v0.10.6 or higher installed. This tutorial uses [Azure Cloud Shell](../cloud-shell/overview.md). To check your current versions of the Azure CLI modules and extensions, run [az version](/cli/azure/reference-index?#az-version).
57
+
* Two Windows devices running Azure IoT Edge for Linux on Windows. Deploy both devices using an **external virtual switch**.
58
58
59
59
> [!TIP]
60
-
> It is possible to use **internal** or **default** virtual switch if a port forwarding is configured on the Windows host OS. However, for the simplicity of this tutorial, both devices should use an **external** virtual switch and be connected to the same external network.
60
+
> You can use an **internal** or **default** virtual switch if port forwarding is set up on the Windows host OS. But to keep this tutorial simple, use an **external** virtual switch for both devices and connect them to the same external network.
61
61
>
62
62
> For more information about networking, see [Azure IoT Edge for Linux on Windows networking](./iot-edge-for-linux-on-windows-networking.md) and [Networking configuration for Azure IoT Edge for Linux on Windows](./how-to-configure-iot-edge-for-linux-on-windows-networking.md).
63
63
>
64
64
> If you need to set up the EFLOW devices on a DMZ, see [How to configure Azure IoT Edge for Linux on Windows Industrial IoT & DMZ configuration](how-to-configure-iot-edge-for-linux-on-windows-iiot-dmz.md).
65
65
* An Azure account with a valid subscription. If you don't have an [Azure subscription](../guides/developer/azure-developer-guide.md#understanding-accounts-subscriptions-and-billing), create a [free account](https://azure.microsoft.com/free/) before you begin.
66
66
* A free or standard tier [IoT Hub](../iot-hub/iot-hub-create-through-portal.md) in Azure.
67
-
* Make sure that the following ports are open inbound for all devices except the lowest layer device: 443, 5671, 8883:
67
+
* Make sure that the following ports are open inbound for all devices except the lowest layer device: 443, 5671, and 8883:
68
68
* 443: Used between parent and child edge hubs for REST API calls and to pull docker container images.
69
69
* 5671, 8883: Used for AMQP and MQTT.
70
70
@@ -229,7 +229,7 @@ Each device needs its corresponding configuration bundle. You can use a USB driv
229
229
```bash
230
230
sudo iotedge check
231
231
```
232
-
On your **top layer device**, expect to see an output with several passing evaluations. You may see some warnings about logs policies and, depending on your network, DNS policies.
232
+
On your **top layer device**, expect to see an output with several passing evaluations. You might see some warnings about logs policies and, depending on your network, DNS policies.
233
233
234
234
If you want a closer look at what modifications are being made to your device's configuration file, see [the configure IoT Edge on devices section of the how-to guide](how-to-connect-downstream-iot-edge-device.md#configure-parent-device).
235
235
@@ -297,24 +297,24 @@ The **Docker registry** module points to an existing Azure Container Registry. I
297
297
298
298
The *IoT Edge API Proxy* module routes HTTP requests to other modules, allowing lower layer devices to pull container images or push blobs to storage. In this tutorial, it communicates on port 443 and is configured to send Docker container image pull requests route to your **Docker registry** module on port 5000. Also, any blob storage upload requests route to module AzureBlobStorageonIoTEdge on port 11002. For more information about the **IoT Edge API Proxy** module and how to configure it, see the module's [how-to guide](how-to-configure-api-proxy-module.md).
299
299
300
-
If you'd like a look at how to create a deployment like this through the Azure portal or Azure Cloud Shell, see [top layer device section of the how-to guide](how-to-connect-downstream-iot-edge-device.md#deploy-modules-to-top-layer-devices).
300
+
To learn how to create a deployment like this in the Azure portal or Azure Cloud Shell, see the [top layer device section of the how-to guide](how-to-connect-downstream-iot-edge-device.md#deploy-modules-to-top-layer-devices).
301
301
302
-
You can view the status of your modules using the command:
302
+
View the status of your modules with the following command:
303
303
304
304
```azurecli
305
305
az iot hub module-twin show --device-id <edge-device-id> --module-id '$edgeAgent' --hub-name <iot-hub-name> --query "properties.reported.[systemModules, modules]"
306
306
```
307
307
308
-
This command outputs all the edgeAgent reported properties. Here are some helpful ones for monitoring the status of the device: *runtime status*, *runtime start time*, *runtime last exit time*, *runtime restart count*.
308
+
This commandshows all the edgeAgent reported properties. Helpful properties for monitoring device status include: *runtime status*, *runtime start time*, *runtime last exit time*, and*runtime restart count*.
309
309
310
-
You can also see the status of your modules on the [Azure portal](https://portal.azure.com/). Navigate to the **Devices** section of your IoT Hub to see your devices and modules.
310
+
You also see the status of your modules in the [Azure portal](https://portal.azure.com/). Go to the **Devices** section of your IoT Hub to view your devices and modules.
311
311
312
312
## View generated data
313
313
314
314
315
315
The **Simulated Temperature Sensor** module that you pushed generates sample environment data. It sends messages that include ambient temperature and humidity, machine temperature and pressure, and a timestamp.
316
316
317
-
You can also view these messages through the [Azure Cloud Shell](https://shell.azure.com/):
317
+
You can also view these messages using [Azure Cloud Shell](https://shell.azure.com/):
318
318
319
319
```azurecli
320
320
az iot hub monitor-events -n <iot-hub-name> -d <lower-layer-device-name>
@@ -350,15 +350,15 @@ When you run `iotedge check` from the lower layer, the program tries to pull the
The `azureiotedge-diagnostics` value is pulled from the container registry that's linked with the registry module. This tutorial has it set by default to https://mcr.microsoft.com:
353
+
The `azureiotedge-diagnostics` value is pulled from the container registry that's linked with the registry module. This tutorial sets it by default to https://mcr.microsoft.com:
If you're using a private container registry, make sure that all the images (IoTEdgeAPIProxy, edgeAgent, edgeHub, Simulated Temperature Sensor, and diagnostics) are presentin the container registry.
359
+
If you use a private container registry, make sure all images (IoTEdgeAPIProxy, edgeAgent, edgeHub, Simulated Temperature Sensor, and diagnostics) are in the container registry.
360
360
361
-
If a downstream device has a different processor architecture from the parent device, you need the appropriate architecture image. You can use a [connected registry](/azure/container-registry/intro-connected-registry) or you can specify the correct image forthe *edgeAgent* and *edgeHub* modulesin the downstream device *config.toml* file. For example, if the parent device is running on an ARM32v7 architecture and the downstream device is running on an AMD64 architecture, you need to specify the matching version and architecture image tag in the downstream device *config.toml* file.
361
+
If a downstream device has a different processor architecture from the parent device, use the appropriate architecture image. Use a [connected registry](/azure/container-registry/intro-connected-registry), or specify the correct image forthe *edgeAgent* and *edgeHub* modulesin the downstream device *config.toml* file. For example, if the parent device runs on an ARM32v7 architecture and the downstream device runs on an AMD64 architecture, specify the matching version and architecture image tag in the downstream device *config.toml* file.
0 commit comments