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
Each IoT Edge device runs at least two modules: $edgeAgent and $edgeHub, which are part of the IoT Edge runtime. IoT Edge device can run multiple additional modules for any number of processes. Use a deployment manifest to tell your device which modules to install and how to configure them to work together.
17
+
Each IoT Edge device runs at least two modules: $edgeAgent and $edgeHub, which are part of the IoT Edge runtime. IoT Edge device can run multiple modules for any number of processes. Use a deployment manifest to tell your device which modules to install and how to configure them to work together.
18
18
19
19
The *deployment manifest* is a JSON document that describes:
20
20
@@ -23,7 +23,7 @@ The *deployment manifest* is a JSON document that describes:
23
23
* The credentials to access private container registries that contain module images.
24
24
* Instructions for how each module should be created and managed.
25
25
* The **IoT Edge hub** module twin, which includes how messages flow between modules and eventually to IoT Hub.
26
-
* The desired properties of any additional module twins (optional).
26
+
* The desired properties of any extra module twins (optional).
27
27
28
28
All IoT Edge devices must be configured with a deployment manifest. A newly installed IoT Edge runtime reports an error code until configured with a valid manifest.
29
29
@@ -167,9 +167,9 @@ The edgeHub module and custom modules also have three properties that tell the I
167
167
***RestartPolicy**: When and if the IoT Edge agent should restart the module if it stops. If the module is stopped without any errors, it won't start automatically. For more information, see [Docker Docs - Start containers automatically](https://aka.ms/docker-container-restart-policy). Required.
168
168
***StartupOrder**: *Introduced in IoT Edge version 1.0.10.* Which order the IoT Edge agent should start the modules when first deployed. The order is declared with integers, where a module given a startup value of 0 is started first and then higher numbers follow. The edgeAgent module doesn't have a startup value because it always starts first. Optional.
169
169
170
-
The IoT Edge agent initiates the modules in order of the startup value, but does not wait for each module to finish starting before going to the next one.
170
+
The IoT Edge agent initiates the modules in order of the startup value, but doesn't wait for each module to finish starting before going to the next one.
171
171
172
-
Startup order is helpful if some modules depend on others. For example, you may want the edgeHub module to start first so that it's ready to route messages when the other modules start. Or you may want to start a storage module before the modules that send data to it. However, you should always design your modules to handle failures of other modules. It's the nature of containers that they may stop and restart at any time, and any number of times.
172
+
Startup order is helpful if some modules depend on others. For example, you may want the edgeHub module to start first so that it's ready to route messages when the other modules start. Or you may want to start a storage module before you start modules that send data to it. However, you should always design your modules to handle failures of other modules. It's the nature of containers that they may stop and restart at any time, and any number of times.
173
173
174
174
> [!NOTE]
175
175
> Changes to a module's properties will result in that module restarting. For example, a restart will happen if you change properties for the:
@@ -225,7 +225,7 @@ You can assign *priority* to routes that you want to make sure process their mes
225
225
226
226
The source specifies where the messages come from. IoT Edge can route messages from modules or downstream devices.
227
227
228
-
Using the IoT SDKs, modules can declare specific output queues for their messages using the ModuleClient class. Output queues aren't necessary, but are helpful for managing multiple routes. Downstream devices can use the DeviceClient class of the IoT SDKs to send messages to IoT Edge gateway devices in the same way that they would send messages to IoT Hub. For more information, see [Understand and use Azure IoT Hub SDKs](../iot-hub/iot-hub-devguide-sdks.md).
228
+
With the IoT SDKs, modules can declare specific output queues for their messages using the ModuleClient class. Output queues aren't necessary, but are helpful for managing multiple routes. Downstream devices can use the DeviceClient class of the IoT SDKs to send messages to IoT Edge gateway devices in the same way that they would send messages to IoT Hub. For more information, see [Understand and use Azure IoT Hub SDKs](../iot-hub/iot-hub-devguide-sdks.md).
229
229
230
230
The source property can be any of the following values:
231
231
@@ -253,7 +253,7 @@ You can build queries around any of the three parameters with the following synt
253
253
254
254
For examples about how to create queries for message properties, see [Device-to-cloud message routes query expressions](../iot-hub/iot-hub-devguide-routing-query-syntax.md).
255
255
256
-
An example that is specific to IoT Edge is when you want to filter for messages that arrived at a gateway device from a downstream device. Messages that come from modules include a system property called **connectionModuleId**. So if you want to route messages from downstream devices directly to IoT Hub, use the following route to exclude module messages:
256
+
An example that is specific to IoT Edge is when you want to filter for messages that arrived at a gateway device from a downstream device. Messages sent from modules include a system property called **connectionModuleId**. So if you want to route messages from downstream devices directly to IoT Hub, use the following route to exclude module messages:
257
257
258
258
```query
259
259
FROM /messages/* WHERE NOT IS_DEFINED($connectionModuleId) INTO $upstream
@@ -304,7 +304,7 @@ For detailed information about how priority queues are managed, see the referenc
304
304
305
305
The deployment manifest specifies desired properties for each module deployed to the IoT Edge device. Desired properties in the deployment manifest overwrite any desired properties currently in the module twin.
306
306
307
-
If you do not specify a module twin's desired properties in the deployment manifest, IoT Hub won't modify the module twin in any way. Instead, you can set the desired properties programmatically.
307
+
If you don't specify a module twin's desired properties in the deployment manifest, IoT Hub won't modify the module twin in any way. Instead, you can set the desired properties programmatically.
308
308
309
309
The same mechanisms that allow you to modify device twins are used to modify module twins. For more information, see the [module twin developer guide](../iot-hub/iot-hub-devguide-module-twins.md).
Copy file name to clipboardExpand all lines: articles/iot-edge/support.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ If you experience problems while using the Azure IoT Edge service, there are sev
23
23
24
24
**Microsoft Customer Support team** - Users who have a [support plan](https://azure.microsoft.com/support/plans/) can engage the Microsoft Customer Support team by creating a support ticket directly from the [Azure portal](https://portal.azure.com/signin/index/?feature.settingsportalinstance=mpac).
25
25
26
-
**Feature requests** - The Azure IoT Edge product tracks feature requests via the product's [User Voice page](https://feedback.azure.com/d365community/forum/0e2fff5d-f524-ec11-b6e6-000d3a4f0da0).
26
+
**Feature requests** - The Azure IoT Edge product tracks feature requests via the product's [Azure feedback](https://feedback.azure.com/d365community/forum/0e2fff5d-f524-ec11-b6e6-000d3a4f0da0) community.
27
27
28
28
## Container engines
29
29
@@ -114,7 +114,7 @@ The following table lists the currently supported releases. IoT Edge release ass
114
114
|[1.4](https://github.com/Azure/azure-iotedge/releases/tag/1.4.0)| Long-term support (LTS) | August 2022 | November 12, 2024 |
115
115
|[1.1](https://github.com/Azure/azure-iotedge/releases/tag/1.1.0)| Long-term support (LTS) | February 2021 | December 13, 2022 |
116
116
117
-
For more information on IoT Edge version history see, [Version history](version-history.md#version-history).
117
+
For more information on IoT Edge version history, see, [Version history](version-history.md#version-history).
118
118
119
119
IoT Edge 1.1 is the first long-term support (LTS) release channel. This version introduced no new features, but will receive security updates and fixes to regressions. IoT Edge 1.1 LTS uses .NET Core 3.1, and will be supported until December 13, 2022 to match the [.NET Core and .NET 5 release lifecycle](https://dotnet.microsoft.com/platform/support/policy/dotnet-core).
120
120
@@ -139,7 +139,7 @@ IoT Edge uses the Microsoft.Azure.Devices.Client SDK. For more information, see
139
139
140
140
## Virtual Machines
141
141
142
-
Azure IoT Edge can be run in virtual machines. Using a virtual machine as an IoT Edge device is common when customers want to augment existing infrastructure with edge intelligence. The family of the host VM OS must match the family of the guest OS used inside a module's container. This requirement is the same as when Azure IoT Edge is run directly on a device. Azure IoT Edge is agnostic of the underlying virtualization technology and works in VMs powered by platforms like Hyper-V and vSphere.
142
+
Azure IoT Edge can be run in virtual machines, such as an [Azure Virtual Machine](../virtual-machines/index.yml). Using a virtual machine as an IoT Edge device is common when customers want to augment existing infrastructure with edge intelligence. The family of the host VM OS must match the family of the guest OS used inside a module's container. This requirement is the same as when Azure IoT Edge is run directly on a device. Azure IoT Edge is agnostic of the underlying virtualization technology and works in VMs powered by platforms like Hyper-V and vSphere.
4.Save the file and apply it to your IoT Edge device again.
210
+
4. Select **Create** to apply it to your IoT Edge device again.
212
211
213
212
### IoT Edge module fails to send a message to edgeHub with 404 error
214
213
@@ -248,25 +247,33 @@ For the IoT Edge hub, set an environment variable **OptimizeForPerformance** to
248
247
249
248
In the Azure portal:
250
249
251
-
In your IoT Hub, select your IoT Edge device and from the device details page and select **Set Modules** > **Runtime Settings**. Create an environment variable for the IoT Edge hub module called *OptimizeForPerformance* that is set to *false*.
250
+
1. In your IoT Hub, select your IoT Edge device and from the device details page and select **Set Modules** > **Runtime Settings**.
251
+
1. Create an environment variable for the IoT Edge hub module called *OptimizeForPerformance* with type *True/False* that is set to *False*.
252
252
253
-

253
+
:::image type="content" source="./media/troubleshoot/optimizeforperformance-false.png" alt-text="Screenshot that shows where to add the OptimizeForPerformance environment variable in the Azure portal.":::
254
254
255
-
In the deployment manifest:
255
+
1. Select **Apply** to save changes, then select **Review + create**.
1. Select **Create** to save your changes and deploy the module.
270
277
271
278
### Security daemon couldn't start successfully
272
279
@@ -313,13 +320,14 @@ When you see this error, you can resolve it by configuring the DNS name of your
313
320
314
321
1. In the Azure portal, navigate to the overview page of your virtual machine.
315
322
316
-
2. Select **configure** under DNS name. If your virtual machine already has a DNS name configured, you don't need to configure a new one.
323
+
2.Open the configuration panel by selecting **Not configured**(if your virtual machine is new) under DNS name, or select your existing DNS name. If your virtual machine already has a DNS name configured, you don't need to configure a new one.
317
324
318
-

325
+
:::image type="content" source="./media/troubleshoot/configure-dns.png" alt-text="Screenshot of how to open the configuration panel of your DNS name.":::
319
326
320
-
3. Provide a value for **DNS name label** and select **Save**.
327
+
3. Provide a value for **DNS name label**if you don't have one already and select **Save**.
321
328
322
-
4. Copy the new DNS name, which should be in the format **\<DNSnamelabel\>.\<vmlocation\>.cloudapp.azure.com**.
329
+
4. Copy the new DNS name, which should be in the format: <br>
0 commit comments