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
Copy file name to clipboardExpand all lines: articles/iot-edge/module-development.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ description: Develop custom modules for Azure IoT Edge that can communicate with
4
4
author: PatAltimore
5
5
6
6
ms.author: patricka
7
-
ms.date: 06/10/2024
7
+
ms.date: 05/16/2025
8
8
ms.topic: concept-article
9
9
ms.service: azure-iot-edge
10
10
services: iot-edge
@@ -48,18 +48,18 @@ When writing a module, you can connect to the IoT Edge hub and use IoT Hub primi
48
48
49
49
#### Device-to-cloud messages
50
50
51
-
An IoT Edge module can send messages to the cloud via the IoT Edge hub that acts as a local broker and propagates messages to the cloud. To enable complex processing of device-to-cloud messages, an IoT Edge module can intercept and process messages sent by other modules or devices to its local IoT Edge hub. The IoT Edge module will then send new messages with processed data. Chains of IoT Edge modules can thus be created to build local processing pipelines.
51
+
An IoT Edge module can send messages to the cloud via the IoT Edge hub that acts as a local broker and propagates messages to the cloud. To enable complex processing of device-to-cloud messages, an IoT Edge module can intercept and process messages sent by other modules or devices to its local IoT Edge hub. The IoT Edge module then sends new messages with processed data. Chains of IoT Edge modules can thus be created to build local processing pipelines.
52
52
53
53
To send device-to-cloud telemetry messages using routes:
54
54
55
-
* Use the Module Client class of the [Azure IoT SDK](https://github.com/Azure/azure-iot-sdks). Each module has *input* and *output* endpoints.
56
-
*Use a send message method from your Module Client class to send messages on the output endpoint of your module.
57
-
*Set up a route in the edgeHub module of your device to send this output endpoint to IoT Hub.
55
+
* Use the ModuleClient class of the [Azure IoT SDK](https://github.com/Azure/azure-iot-sdks). Each module has *input* and *output* endpoints.
56
+
*To send messages on the output endpoint of your module, use a send message method from your ModuleClient class.
57
+
*To send this output endpoint to IoT Hub, set up a route in the edgeHub module of your device.
58
58
59
59
To process messages using routes:
60
60
61
61
* Set up a route to send messages coming from another endpoint (module or device) to the input endpoint of your module.
62
-
* Listen for messages on the input endpoint of your module. Each time a new message comes back, a callback function is triggered by the Azure IoT SDK.
62
+
* Listen for messages on the input endpoint of your module. Each time a new message comes back, the Azure IoT SDK triggers a callback function.
63
63
* Process your message with this callback function and (optionally) send new messages in your module endpoint queue.
For all languages in the following table, IoT Edge [supports](support.md) development for AMD64 and most ARM64 Linux containers. There is support for Debian 11 ARM32 containers, as well.
86
+
For all languages in the following table, IoT Edge [supports](support.md) development for AMD64 and most ARM64 Linux containers. There's support for Debian 11 ARM32 containers, as well.
87
87
88
88
| Development language | Development tools |
89
89
| -------------------- | ----------------- |
@@ -94,21 +94,21 @@ For all languages in the following table, IoT Edge [supports](support.md) develo
94
94
| Python | Visual Studio Code |
95
95
96
96
>[!NOTE]
97
-
>For cross-platform compilation, like compiling an ARM32 IoT Edge module on an AMD64 development machine, you need to configure the development machine to compile code on target device architecture matching the IoT Edge module. For more information about target device architectures, see [Develop Azure IoT Edge modules using Visual Studio Code](tutorial-develop-for-linux.md).
97
+
>For cross-platform compilation, like compiling an ARM32 IoT Edge module on an AMD64 development machine, you need to configure the development machine to compile code on target device architecture matching the IoT Edge module. For more information about target device architectures, see [Tutorial: Develop Azure IoT Edge modules using Visual Studio Code](tutorial-develop-for-linux.md).
98
98
99
99
### Windows
100
100
101
101
We no longer support Windows containers. [IoT Edge for Linux on Windows](iot-edge-for-linux-on-windows.md) is the recommended way to run IoT Edge on Windows devices.
102
102
103
103
## Module security
104
104
105
-
You should develop your modules with security in mind. To learn more about securing your modules, see [Docker security](https://docs.docker.com/engine/security/).
105
+
You should develop your modules with security in mind. To learn more about securing your modules, see [Docker Engine security](https://docs.docker.com/engine/security/).
106
106
107
107
To help improve module security, IoT Edge disables some container features by default. You can override the defaults to provide privileged capabilities to your modules if necessary.
108
108
109
109
### Allow elevated Docker permissions
110
110
111
-
In the config file on an IoT Edge device, there's a parameter called `allow_elevated_docker_permissions`. When set to **true**, this flag allows the `--privileged` flag and any additional capabilities that you define in the `CapAdd` field of the Docker HostConfig in the [container create options](how-to-use-create-options.md).
111
+
In the config file on an IoT Edge device, there's a parameter called `allow_elevated_docker_permissions`. When set to **true**, this flag allows the `--privileged` flag and any other capabilities that you define in the `CapAdd` field of the Docker HostConfig in the [container create options](how-to-use-create-options.md).
112
112
113
113
> [!NOTE]
114
114
> Currently, this flag is true by default, which allows deployments to grant privileged permissions to modules. We recommend that you set this flag to false to improve device security.
@@ -123,8 +123,8 @@ If you need these capabilities, you can manually re-enable them using CapADD in
123
123
124
124
[Prepare your development and test environment for IoT Edge](development-environment.md)
125
125
126
-
[Develop Azure IoT Edge modules using Visual Studio Code](tutorial-develop-for-linux.md)
126
+
[Tutorial: Develop Azure IoT Edge modules using Visual Studio Code](tutorial-develop-for-linux.md)
127
127
128
128
[Debug Azure IoT Edge modules using Visual Studio Code](debug-module-vs-code.md)
129
129
130
-
[Understand and use Azure IoT Hub SDKs](../iot-hub/iot-hub-devguide-sdks.md)
0 commit comments