Skip to content

Commit 45c368e

Browse files
authored
Merge pull request #225103 from w-azure/winona-modules
Freshness check - batch 3
2 parents 98c763a + 105c69e commit 45c368e

File tree

5 files changed

+57
-49
lines changed

5 files changed

+57
-49
lines changed
28.5 KB
Loading
24.6 KB
Loading

articles/iot-edge/module-composition.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ services: iot-edge
1414

1515
[!INCLUDE [iot-edge-version-all-supported](includes/iot-edge-version-all-supported.md)]
1616

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

1919
The *deployment manifest* is a JSON document that describes:
2020

@@ -23,7 +23,7 @@ The *deployment manifest* is a JSON document that describes:
2323
* The credentials to access private container registries that contain module images.
2424
* Instructions for how each module should be created and managed.
2525
* 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).
2727

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

@@ -167,9 +167,9 @@ The edgeHub module and custom modules also have three properties that tell the I
167167
* **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.
168168
* **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.
169169

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

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

174174
> [!NOTE]
175175
> 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
225225

226226
The source specifies where the messages come from. IoT Edge can route messages from modules or downstream devices.
227227

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

230230
The source property can be any of the following values:
231231

@@ -253,7 +253,7 @@ You can build queries around any of the three parameters with the following synt
253253

254254
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).
255255

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

258258
```query
259259
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
304304

305305
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.
306306

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

309309
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).
310310

articles/iot-edge/support.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ If you experience problems while using the Azure IoT Edge service, there are sev
2323

2424
**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).
2525

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

2828
## Container engines
2929

@@ -114,7 +114,7 @@ The following table lists the currently supported releases. IoT Edge release ass
114114
| [1.4](https://github.com/Azure/azure-iotedge/releases/tag/1.4.0) | Long-term support (LTS) | August 2022 | November 12, 2024 |
115115
| [1.1](https://github.com/Azure/azure-iotedge/releases/tag/1.1.0) | Long-term support (LTS) | February 2021 | December 13, 2022 |
116116

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

119119
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).
120120

@@ -139,7 +139,7 @@ IoT Edge uses the Microsoft.Azure.Devices.Client SDK. For more information, see
139139

140140
## Virtual Machines
141141

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

144144
<center>
145145

articles/iot-edge/troubleshoot-common-errors.md

Lines changed: 47 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,9 @@ In the Azure portal:
173173

174174
4. Select **Runtime Settings**.
175175

176-
5. In the **Edge Hub** module settings, delete everything from the **Create Options** text box.
176+
5. In the **Edge Hub** module settings, delete everything from the **Container Create Options** text box.
177177

178-
6. Save your changes and create the deployment.
178+
6. Select **Apply** to save your changes and create the deployment.
179179

180180
In the deployment.json file:
181181

@@ -184,31 +184,30 @@ In the deployment.json file:
184184
2. Find the `edgeHub` settings in the edgeAgent desired properties section:
185185

186186
```json
187-
"edgeHub": {
188-
"settings": {
189-
"image": "mcr.microsoft.com/azureiotedge-hub:1.1",
190-
"createOptions": "{\"HostConfig\":{\"PortBindings\":{\"8883/tcp\":[{\"HostPort\":\"8883\"}],\"443/tcp\":[{\"HostPort\":\"443\"}]}}}"
191-
},
192-
"type": "docker",
193-
"status": "running",
194-
"restartPolicy": "always"
195-
}
187+
"edgeHub": {
188+
"restartPolicy": "always",
189+
"settings": {
190+
"image": "mcr.microsoft.com/azureiotedge-hub:1.4",
191+
"createOptions": "{\"HostConfig\":{\"PortBindings\":{\"443/tcp\":[{\"HostPort\":\"443\"}],\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}]}}}"
192+
},
193+
"status": "running",
194+
"type": "docker"
195+
}
196196
```
197197

198198
3. Remove the `createOptions` line, and the trailing comma at the end of the `image` line before it:
199199

200200
```json
201-
"edgeHub": {
202-
"settings": {
203-
"image": "mcr.microsoft.com/azureiotedge-hub:1.1"
204-
},
205-
"type": "docker",
206-
"status": "running",
207-
"restartPolicy": "always"
201+
"edgeHub": {
202+
"restartPolicy": "always",
203+
"settings": {
204+
"image": "mcr.microsoft.com/azureiotedge-hub:1.4",
205+
"status": "running",
206+
"type": "docker"
208207
}
209208
```
210209

211-
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.
212211

213212
### IoT Edge module fails to send a message to edgeHub with 404 error
214213

@@ -248,25 +247,33 @@ For the IoT Edge hub, set an environment variable **OptimizeForPerformance** to
248247

249248
In the Azure portal:
250249

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*.
252252

253-
![OptimizeForPerformance set to false](./media/troubleshoot/optimizeforperformance-false.png)
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.":::
254254

255-
In the deployment manifest:
255+
1. Select **Apply** to save changes, then select **Review + create**.
256256

257-
```json
258-
"edgeHub": {
259-
"type": "docker",
260-
"settings": {
261-
"image": "mcr.microsoft.com/azureiotedge-hub:1.1",
262-
"createOptions": <snipped>
263-
},
264-
"env": {
265-
"OptimizeForPerformance": {
266-
"value": "false"
267-
}
268-
},
269-
```
257+
The environment variable is now in the `edgeHub` property of the deployment manifest:
258+
259+
```json
260+
"edgeHub": {
261+
"env": {
262+
"OptimizeForPerformance": {
263+
"value": false
264+
}
265+
},
266+
"restartPolicy": "always",
267+
"settings": {
268+
"image": "mcr.microsoft.com/azureiotedge-hub:1.4",
269+
"createOptions": "{\"HostConfig\":{\"PortBindings\":{\"443/tcp\":[{\"HostPort\":\"443\"}],\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}]}}}"
270+
},
271+
"status": "running",
272+
"type": "docker"
273+
}
274+
```
275+
276+
1. Select **Create** to save your changes and deploy the module.
270277

271278
### Security daemon couldn't start successfully
272279

@@ -313,13 +320,14 @@ When you see this error, you can resolve it by configuring the DNS name of your
313320

314321
1. In the Azure portal, navigate to the overview page of your virtual machine.
315322

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

318-
![Configure DNS name of virtual machine](./media/troubleshoot/configure-dns.png)
325+
:::image type="content" source="./media/troubleshoot/configure-dns.png" alt-text="Screenshot of how to open the configuration panel of your DNS name.":::
319326

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**.
321328

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>
330+
**\<DNSnamelabel\>.\<vmlocation\>.cloudapp.azure.com**.
323331

324332
5. On the IoT Edge device, open the config file.
325333

0 commit comments

Comments
 (0)