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/tutorial-machine-learning-edge-03-generate-data.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,6 +8,7 @@ ms.date: 1/20/2020
8
8
ms.topic: tutorial
9
9
ms.service: iot-edge
10
10
services: iot-edge
11
+
monikerRange: "=iotedge-2018-06"
11
12
---
12
13
13
14
# Tutorial: Generate simulated device data
@@ -60,7 +61,7 @@ This article is part of a series for a tutorial about using Azure Machine Learni
60
61
61
62
1. Since you're using extensions on this machine for the first time, some extensions will update and install their dependencies. You may be prompted to update extension. If so, select **Reload Window**.
62
63
63
-
If OmniSharp errors appear in the output window, you’ll need to uninstall the C# extension.
64
+
If OmniSharp errors appear in the output window, you'll need to uninstall the C# extension.
64
65
65
66
1. You will be prompted to add required assets for DeviceHarness. Select **Yes** to add them.
66
67
@@ -145,7 +146,7 @@ The data sent by the DeviceHarness went to your IoT hub, where you can verify in
145
146
146
147
## Validate data in Azure Storage
147
148
148
-
The data we just sent to your IoT hub was routed to the storage container that we created in the previous article. Let’s look at the data in our storage account.
149
+
The data we just sent to your IoT hub was routed to the storage container that we created in the previous article. Let's look at the data in our storage account.
149
150
150
151
1. In the Azure portal, navigate to your storage account.
Copy file name to clipboardExpand all lines: articles/iot-edge/tutorial-machine-learning-edge-06-custom-modules.md
+12-11Lines changed: 12 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,7 @@ ms.topic: tutorial
9
9
ms.service: iot-edge
10
10
services: iot-edge
11
11
ms.custom: devx-track-csharp
12
+
monikerRange: "=iotedge-2018-06"
12
13
---
13
14
# Tutorial: Create and deploy custom IoT Edge modules
14
15
@@ -65,7 +66,7 @@ This article is part of a series for a tutorial about using Azure Machine Learni
65
66
66
67
During execution of the second of our two Azure Notebooks, we created and published a container image containing our RUL model. Azure Machine Learning, as part of the image creation process, packaged that model so that the image is deployable as an Azure IoT Edge module.
67
68
68
-
In this step, we are going to create an Azure IoT Edge solution using the “Azure Machine Learning” module and point the module to the image we published using Azure Notebooks.
69
+
In this step, we are going to create an Azure IoT Edge solution using the "Azure Machine Learning" module and point the module to the image we published using Azure Notebooks.
69
70
70
71
1. Open a remote desktop session to your development VM.
71
72
@@ -274,7 +275,7 @@ Add four additional routes to the $edgeHub route parameter, to handle outputs fr
274
275
"deadLetter": "FROM /messages/modules/turboFanRouter/outputs/deadMessages INTO $upstream"
275
276
```
276
277
277
-
With all the routes taken together your “$edgeHub” node should look like
278
+
With all the routes taken together your "$edgeHub" node should look like
278
279
the following JSON:
279
280
280
281
```json
@@ -303,7 +304,7 @@ the following JSON:
303
304
304
305
The Avro Writer module has two responsibilities in our solution, to store messages and upload files.
305
306
306
-
***Store messages**: when the Avro Writer module receives a message, it writes the message to the local file system in Avro format. We use a bind mount, which mounts a directory (in this case /data/avrofiles) into a path in the module’s container. This mount allows the module to write to a local path (/avrofiles) and have those files accessible directly from the IoT Edge device.
307
+
***Store messages**: when the Avro Writer module receives a message, it writes the message to the local file system in Avro format. We use a bind mount, which mounts a directory (in this case /data/avrofiles) into a path in the module's container. This mount allows the module to write to a local path (/avrofiles) and have those files accessible directly from the IoT Edge device.
307
308
308
309
***Upload files**: the Avro Writer module uses the Azure IoT Hub file upload feature to upload files to an Azure storage account. Once a file is successfully uploaded, the module deletes the file from disk
309
310
@@ -336,7 +337,7 @@ The Avro Writer module has two responsibilities in our solution, to store messag
336
337
337
338
### Bind mount for data files
338
339
339
-
As mentioned previously, the writer module relies on the presence of a bind mount to write Avro files to the device’s file system.
340
+
As mentioned previously, the writer module relies on the presence of a bind mount to write Avro files to the device's file system.
340
341
341
342
#### Add directory to device
342
343
@@ -368,7 +369,7 @@ As mentioned previously, the writer module relies on the presence of a bind moun
368
369
369
370
#### Add directory to the module
370
371
371
-
To add the directory to the module’s container, we will modify the Dockerfiles associated with the avroFileWriter module. There are three Dockerfiles associated with the module: Dockerfile.amd64, Dockerfile.amd64.debug, and Dockerfile.arm32v7. These files should be kept in sync in case we wish to debug or deploy to an arm32 device. For this article, focus only on Dockerfile.amd64.
372
+
To add the directory to the module's container, we will modify the Dockerfiles associated with the avroFileWriter module. There are three Dockerfiles associated with the module: Dockerfile.amd64, Dockerfile.amd64.debug, and Dockerfile.arm32v7. These files should be kept in sync in case we wish to debug or deploy to an arm32 device. For this article, focus only on Dockerfile.amd64.
372
373
373
374
1. On your development VM, open the **C:\source\IoTEdgeAndMlSample\EdgeSolution\modules\avoFileWriter\Dockerfile.amd64** file.
374
375
@@ -514,7 +515,7 @@ We need to add one more bind for the writer module. This bind gives the module a
514
515
515
516
## Install dependencies
516
517
517
-
The writer module takes a dependency on two Python libraries, fastavro and PyYAML. We need to install the dependencies on our development machine and instruct the Docker build process to install them in our module’s image.
518
+
The writer module takes a dependency on two Python libraries, fastavro and PyYAML. We need to install the dependencies on our development machine and instruct the Docker build process to install them in our module's image.
518
519
519
520
### PyYAML
520
521
@@ -623,7 +624,7 @@ With the router and classifier in place, we expect to receive regular messages c
623
624
}
624
625
```
625
626
626
-
1. Select**Test route**. If the test is successful, you see “The message matched the query.”
627
+
1. Select**Test route**. If the test is successful, you see "The message matched the query."
627
628
628
629
1. Click **Save**.
629
630
@@ -675,7 +676,7 @@ We don't want to route the new prediction data to our old storage location, so u
675
676
}
676
677
```
677
678
678
-
1. Select **Test route**. If the test is successful, you see “The message matched the query.”
679
+
1. Select **Test route**. If the test is successful, you see "The message matched the query."
679
680
680
681
1. Select **Save**.
681
682
@@ -702,7 +703,7 @@ Now that we have made the configuration changes, we are ready to build the image
702
703
703
704
***Deployment lag:** since the IoT Edge runtime must recognize the change to its desired properties before it starts to reconfigure, it can take some amount of time after you deploy your modules until the runtime picks them up and starts to update the IoT Edge device.
704
705
705
-
***Module versions matter:** if you publish a new version of a module’s container to your container registry using the same version tags as the previous module, the runtime will not download the new version of the module. It does a comparison of the version tag of the local image and the desired image from the deployment manifest. If those versions match, the runtime takes no action. Therefore, it is important to increment the version of your module each time you wish to deploy new changes. Increment the version by changing the **version** property under the **tag** property in the module.json file for the module you are changing. Then build and publish the module.
706
+
***Module versions matter:** if you publish a new version of a module's container to your container registry using the same version tags as the previous module, the runtime will not download the new version of the module. It does a comparison of the version tag of the local image and the desired image from the deployment manifest. If those versions match, the runtime takes no action. Therefore, it is important to increment the version of your module each time you wish to deploy new changes. Increment the version by changing the **version** property under the **tag** property in the module.json file for the module you are changing. Then build and publish the module.
1. List all running containers. We expect to see a container for each module with a name that corresponds to the module. Also, this command lists the exact image for the container including version so you can match with your expectation. You can also list images by substituting “image” for “container”in the command.
796
+
1. List all running containers. We expect to see a container for each module with a name that corresponds to the module. Also, this command lists the exact image for the container including version so you can match with your expectation. You can also list images by substituting "image" for "container" in the command.
796
797
797
798
```bash
798
799
sudo docker container ls
@@ -822,7 +823,7 @@ This tutorial is part of a set where each article builds on the work done in the
822
823
823
824
## Next steps
824
825
825
-
In this article, we created an IoT Edge Solution in Visual Studio Code with three modules: a classifier, a router, and a file writer/uploader. We set up the routes to allow the modules to communicate with each other on the edge device. We modified the configuration of the edge device, and updated the Dockerfiles to install dependencies and add bind mounts to the modules’ containers.
826
+
In this article, we created an IoT Edge Solution in Visual Studio Code with three modules: a classifier, a router, and a file writer/uploader. We set up the routes to allow the modules to communicate with each other on the edge device. We modified the configuration of the edge device, and updated the Dockerfiles to install dependencies and add bind mounts to the modules' containers.
826
827
827
828
Next, we updated the configuration of the IoT Hub to route our messages based on type and to handle file uploads. With everything in place, we deployed the modules to the IoT Edge device and ensured the modules were running correctly.
Copy file name to clipboardExpand all lines: articles/iot-edge/tutorial-machine-learning-edge-07-send-data-to-hub.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,7 @@ ms.topic: tutorial
9
9
ms.service: iot-edge
10
10
services: iot-edge
11
11
ms.custom: devx-track-csharp
12
+
monikerRange: "=iotedge-2018-06"
12
13
---
13
14
14
15
# Tutorial: Send data via transparent gateway
@@ -52,7 +53,7 @@ Look at the code to see how these two items are implemented.
52
53
53
54
1. Now look at the GetIotHubDevice method on the TurbofanDevice class.
54
55
55
-
1. When the user specifies the FQDN of the gateway using the “-g” option, that value is passed to this method as the `gatewayFqdn` variable, which gets appended to the device connection string.
56
+
1. When the user specifies the FQDN of the gateway using the "-g" option, that value is passed to this method as the `gatewayFqdn` variable, which gets appended to the device connection string.
@@ -88,7 +89,7 @@ Look at the code to see how these two items are implemented.
88
89
Device: 1 Message count: 250
89
90
```
90
91
91
-
Note the addition of the “GatewayHostName” to the device connection string, which causes the device to communicate through the IoT Hub through the IoT Edge transparent gateway.
92
+
Note the addition of the "GatewayHostName" to the device connection string, which causes the device to communicate through the IoT Hub through the IoT Edge transparent gateway.
92
93
93
94
## Check output
94
95
@@ -122,7 +123,7 @@ We can observe the results of our leaf device sending data by looking at the sto
122
123
123
124
1. On the development machine open Visual Studio Code.
124
125
125
-
1. In the “AZURE STORAGE” panel in the explore window, navigate the tree to find your storage account.
126
+
1. In the "AZURE STORAGE" panel in the explore window, navigate the tree to find your storage account.
0 commit comments