Skip to content

Commit df3e854

Browse files
authored
Merge pull request #206034 from PatAltimore/patricka-iotedge-1.4
IoT Edge 1.4
2 parents 327a42f + f45cc49 commit df3e854

File tree

48 files changed

+195
-87
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+195
-87
lines changed

articles/iot-dps/how-to-send-additional-data.md

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,32 @@ This feature is available in C, C#, JAVA and Node.js client SDKs. To learn more
5959

6060
[IoT Plug and Play (PnP)](../iot-develop/overview-iot-plug-and-play.md) devices use the payload to send their model ID when they register with DPS. You can find examples of this usage in the PnP samples in the SDK or sample repositories. For example, [C# PnP thermostat](https://github.com/Azure-Samples/azure-iot-samples-csharp/blob/main/iot-hub/Samples/device/PnpDeviceSamples/Thermostat/Program.cs) or [Node.js PnP temperature controller](https://github.com/Azure/azure-iot-sdk-node/blob/main/device/samples/javascript/pnp_temperature_controller.js).
6161

62+
## IoT Edge support
63+
64+
Starting with version 1.4, IoT Edge supports sending a data payload contained in a JSON file. The payload file is read and sent to DPS when the device is (re)registered which typically happens when you run `iotedge config apply` for the first time. You can also force it to be re-read and registered by using the CLI's reprovision command `iotedge system reprovision`.
65+
66+
Below is an example snippet from `/etc/aziot/config.toml` where the `payload` property is set to the path of a local JSON file.
67+
68+
```toml
69+
[provisioning]
70+
source = "dps"
71+
global_endpoint = "https://global.azure-devices-provisioning.net"
72+
id_scope = "0ab1234C5D6"
73+
74+
# Uncomment to send a custom payload during DPS registration
75+
payload = { uri = "file:///home/aziot/payload.json" }
76+
77+
```
78+
79+
The payload file (in this case `/home/aziot/payload/json`) can contain any valid JSON such as:
80+
81+
82+
```json
83+
{
84+
"modelId": "dtmi:com:example:edgedevice;1"
85+
}
86+
```
87+
6288
## Next steps
6389

64-
* To learn how to provision devices using a custom allocation policy, see [How to use custom allocation policies](./how-to-use-custom-allocation-policies.md)
90+
* To learn how to provision devices using a custom allocation policy, see [How to use custom allocation policies](./how-to-use-custom-allocation-policies.md)

articles/iot-edge/configure-connect-verify-gpu.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ To create a GPU-optimized virtual machine (VM), choosing the right size is impor
4141

4242
Let's create an IoT Edge VM with the [Azure Resource Manager (ARM)](/azure/azure-resource-manager/management/overview) template in GitHub, then configure it to be GPU-optimized.
4343

44-
1. Go to the IoT Edge VM deployment template in GitHub: [Azure/iotedge-vm-deploy](https://github.com/Azure/iotedge-vm-deploy/tree/1.3).
44+
1. Go to the IoT Edge VM deployment template in GitHub: [Azure/iotedge-vm-deploy](https://github.com/Azure/iotedge-vm-deploy/tree/1.4).
4545

4646
1. Select the **Deploy to Azure** button, which initiates the creation of a custom VM for you in the Azure portal.
4747

articles/iot-edge/how-to-configure-proxy-support.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ ms.custom: [amqp, contperf-fy21q1]
1212

1313
# Configure an IoT Edge device to communicate through a proxy server
1414

15-
[!INCLUDE [iot-edge-version-201806-or-202011](../../includes/iot-edge-version-201806-or-202011.md)]
15+
[!INCLUDE [iot-edge-version-1.1-or-1.4](./includes/iot-edge-version-1.1-or-1.4.md)]
1616

1717
IoT Edge devices send HTTPS requests to communicate with IoT Hub. If your device is connected to a network that uses a proxy server, you need to configure the IoT Edge runtime to communicate through the server. Proxy servers can also affect individual IoT Edge modules if they make HTTP or HTTPS requests that aren't routed through the IoT Edge hub.
1818

articles/iot-edge/how-to-connect-downstream-device.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ ms.custom: [amqp, mqtt, devx-track-js]
1313

1414
# Connect a downstream device to an Azure IoT Edge gateway
1515

16-
[!INCLUDE [iot-edge-version-201806-or-202011](../../includes/iot-edge-version-201806-or-202011.md)]
16+
[!INCLUDE [iot-edge-version-1.1-or-1.4](./includes/iot-edge-version-1.1-or-1.4.md)]
1717

1818
This article provides instructions for establishing a trusted connection between downstream devices and IoT Edge transparent gateways. In a transparent gateway scenario, one or more devices can pass their messages through a single gateway device that maintains the connection to IoT Hub.
1919

articles/iot-edge/how-to-connect-downstream-iot-edge-device.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -227,11 +227,11 @@ You should already have IoT Edge installed on your device. If not, follow the st
227227
pk = "file:///var/secrets/iot-edge-device-ca-gateway.key.pem"
228228
```
229229
230-
01. Verify your IoT Edge device uses the correct version of the IoT Edge agent when it starts. Find the **Default Edge Agent** section and set the image value for IoT Edge to version 1.3. For example:
230+
01. Verify your IoT Edge device uses the correct version of the IoT Edge agent when it starts. Find the **Default Edge Agent** section and set the image value for IoT Edge to version 1.4. For example:
231231
232232
```toml
233233
[agent.config]
234-
image: "mcr.microsoft.com/azureiotedge-agent:1.3"
234+
image: "mcr.microsoft.com/azureiotedge-agent:1.4"
235235
```
236236
237237
01. The beginning of your parent configuration file should look similar to the following example.
@@ -281,8 +281,8 @@ To verify the *hostname*, you need to inspect the environment variables of the *
281281
```output
282282
NAME STATUS DESCRIPTION CONFIG
283283
SimulatedTemperatureSensor running Up 5 seconds mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0
284-
edgeAgent running Up 17 seconds mcr.microsoft.com/azureiotedge-agent:1.3
285-
edgeHub running Up 6 seconds mcr.microsoft.com/azureiotedge-hub:1.3
284+
edgeAgent running Up 17 seconds mcr.microsoft.com/azureiotedge-agent:1.4
285+
edgeHub running Up 6 seconds mcr.microsoft.com/azureiotedge-hub:1.4
286286
```
287287
01. Inspect the *edgeHub* container.
288288

@@ -385,11 +385,11 @@ You should already have IoT Edge installed on your device. If not, follow the st
385385
pk = "file:///var/secrets/iot-edge-device-ca-downstream.key.pem"
386386
```
387387
388-
01. Verify your IoT Edge device uses the correct version of the IoT Edge agent when it starts. Find the **Default Edge Agent** section and set the image value for IoT Edge to version 1.3. For example:
388+
01. Verify your IoT Edge device uses the correct version of the IoT Edge agent when it starts. Find the **Default Edge Agent** section and set the image value for IoT Edge to version 1.4. For example:
389389
390390
```toml
391391
[agent.config]
392-
image: "mcr.microsoft.com/azureiotedge-agent:1.3"
392+
image: "mcr.microsoft.com/azureiotedge-agent:1.4"
393393
```
394394
395395
01. The beginning of your child configuration file should look similar to the following example.
@@ -654,14 +654,14 @@ The API proxy module was designed to be customized to handle most common gateway
654654
"systemModules": {
655655
"edgeAgent": {
656656
"settings": {
657-
"image": "mcr.microsoft.com/azureiotedge-agent:1.3",
657+
"image": "mcr.microsoft.com/azureiotedge-agent:1.4",
658658
"createOptions": "{}"
659659
},
660660
"type": "docker"
661661
},
662662
"edgeHub": {
663663
"settings": {
664-
"image": "mcr.microsoft.com/azureiotedge-hub:1.3",
664+
"image": "mcr.microsoft.com/azureiotedge-hub:1.4",
665665
"createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}]}}}"
666666
},
667667
"type": "docker",
@@ -729,7 +729,7 @@ name = "edgeAgent"
729729
type = "docker"
730730
731731
[agent.config]
732-
image: "{Parent FQDN or IP}:443/azureiotedge-agent:1.3"
732+
image: "{Parent FQDN or IP}:443/azureiotedge-agent:1.4"
733733
```
734734

735735
If you are using a local container registry, or providing the container images manually on the device, update the config file accordingly.

articles/iot-edge/how-to-create-iot-edge-device.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ms.author: patricka
1111

1212
# Create an IoT Edge device
1313

14-
[!INCLUDE [iot-edge-version-201806-or-202011](../../includes/iot-edge-version-201806-or-202011.md)]
14+
[!INCLUDE [iot-edge-version-1.1-or-1.4](./includes/iot-edge-version-1.1-or-1.4.md)]
1515

1616
This article provides an overview of the options available to you for installing and provisioning IoT Edge on your devices.
1717

@@ -43,7 +43,7 @@ If you want more information about how to choose the right option for you, conti
4343
:::moniker range=">=iotedge-2020-11"
4444

4545
>[!NOTE]
46-
>The following table reflects the supported scenarios for IoT Edge version 1.3. To see content about Windows containers, switch to the [IoT Edge 1.1](?view=iotedge-2018-06&preserve-view=true) version of this article.
46+
>The following table reflects the supported scenarios for IoT Edge version 1.4. To see content about Windows containers, switch to the [IoT Edge 1.1](?view=iotedge-2018-06&preserve-view=true) version of this article.
4747
4848
| | Linux containers on Linux hosts |
4949
|--| ----- |
@@ -108,7 +108,7 @@ For Windows devices, the IoT Edge runtime is installed directly on the host devi
108108

109109
<!-- iotedge-2020-11 -->
110110
:::moniker range=">=iotedge-2020-11"
111-
IoT Edge version 1.3 doesn't support Windows containers. Windows containers are not supported beyond version 1.1. To learn more about IoT Edge with Windows containers, see the [IoT Edge 1.1](?view=iotedge-2018-06&preserve-view=true) version of this article.
111+
IoT Edge version 1.4 doesn't support Windows containers. Windows containers are not supported beyond version 1.1. To learn more about IoT Edge with Windows containers, see the [IoT Edge 1.1](?view=iotedge-2018-06&preserve-view=true) version of this article.
112112
:::moniker-end
113113
<!--end iotedge-2020-11-->
114114

articles/iot-edge/how-to-create-test-certificates.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ services: iot-edge
1212

1313
# Create demo certificates to test IoT Edge device features
1414

15-
[!INCLUDE [iot-edge-version-201806-or-202011](../../includes/iot-edge-version-201806-or-202011.md)]
15+
[!INCLUDE [iot-edge-version-1.1-or-1.4](./includes/iot-edge-version-1.1-or-1.4.md)]
1616

1717
IoT Edge devices require certificates for secure communication between the runtime, the modules, and any downstream devices.
1818
If you don't have a certificate authority to create the required certificates, you can use demo certificates to try out IoT Edge features in your test environment.

articles/iot-edge/how-to-create-transparent-gateway.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ ms.custom: [amqp, mqtt]
1313

1414
# Configure an IoT Edge device to act as a transparent gateway
1515

16-
[!INCLUDE [iot-edge-version-201806-or-202011](../../includes/iot-edge-version-201806-or-202011.md)]
16+
[!INCLUDE [iot-edge-version-1.1-or-1.4](./includes/iot-edge-version-1.1-or-1.4.md)]
1717

1818
This article provides detailed instructions for configuring an IoT Edge device to function as a transparent gateway for other devices to communicate with IoT Hub. This article uses the term *IoT Edge gateway* to refer to an IoT Edge device configured as a transparent gateway. For more information, see [How an IoT Edge device can be used as a gateway](./iot-edge-as-gateway.md).
1919

@@ -155,7 +155,7 @@ Now, you need to copy the certificates to the Azure IoT Edge for Linux on Window
155155
Copy-EflowVMFile -fromFile <path>\certs\azure-iot-test-only.root.ca.cert.pem -toFile /home/iotedge-user/certs/certs/azure-iot-test-only.root.ca.cert.pem -pushFile
156156
```
157157

158-
1. Invoke the following commands on the EFLOW VM to grant iotedge permissions to the certificate files since `Copy-EflowVMFile` copies files with root only access permissions.
158+
1. Invoke the following commands on the EFLOW VM to grant *iotedge* permissions to the certificate files since `Copy-EflowVMFile` copies files with root only access permissions.
159159

160160
```powershell
161161
Invoke-EflowVmCommand "sudo chown -R iotedge /home/iotedge-user/certs/"

articles/iot-edge/how-to-install-iot-edge-ubuntuvm.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ ms.author: pdecarlo
1414
---
1515
# Run Azure IoT Edge on Ubuntu Virtual Machines
1616

17-
[!INCLUDE [iot-edge-version-201806-or-202011](../../includes/iot-edge-version-201806-or-202011.md)]
17+
[!INCLUDE [iot-edge-version-1.1-or-1.4](./includes/iot-edge-version-1.1-or-1.4.md)]
1818

1919
The Azure IoT Edge runtime is what turns a device into an IoT Edge device. The runtime can be deployed on devices as small as a Raspberry Pi or as large as an industrial server. Once a device is configured with the IoT Edge runtime, you can start deploying business logic to it from the cloud.
2020

@@ -26,9 +26,9 @@ This article lists the steps to deploy an Ubuntu 18.04 LTS virtual machine with
2626
On first boot, the virtual machine [installs the latest version of the Azure IoT Edge runtime via cloud-init](https://github.com/Azure/iotedge-vm-deploy/blob/1.1/cloud-init.txt). It also sets a supplied connection string before the runtime starts, allowing you to easily configure and connect the IoT Edge device without the need to start an SSH or remote desktop session.
2727
:::moniker-end
2828
:::moniker range=">=iotedge-2020-11"
29-
This article lists the steps to deploy an Ubuntu 20.04 LTS virtual machine with the Azure IoT Edge runtime installed and configured using a pre-supplied device connection string. The deployment is accomplished using a [cloud-init](../virtual-machines/linux/using-cloud-init.md) based [Azure Resource Manager template](../azure-resource-manager/templates/overview.md) maintained in the [iotedge-vm-deploy](https://github.com/Azure/iotedge-vm-deploy/tree/1.3) project repository.
29+
This article lists the steps to deploy an Ubuntu 20.04 LTS virtual machine with the Azure IoT Edge runtime installed and configured using a pre-supplied device connection string. The deployment is accomplished using a [cloud-init](../virtual-machines/linux/using-cloud-init.md) based [Azure Resource Manager template](../azure-resource-manager/templates/overview.md) maintained in the [iotedge-vm-deploy](https://github.com/Azure/iotedge-vm-deploy/tree/1.4) project repository.
3030

31-
On first boot, the virtual machine [installs the latest version of the Azure IoT Edge runtime via cloud-init](https://github.com/Azure/iotedge-vm-deploy/blob/1.3/cloud-init.txt). It also sets a supplied connection string before the runtime starts, allowing you to easily configure and connect the IoT Edge device without the need to start an SSH or remote desktop session.
31+
On first boot, the virtual machine [installs the latest version of the Azure IoT Edge runtime via cloud-init](https://github.com/Azure/iotedge-vm-deploy/blob/1.4/cloud-init.txt). It also sets a supplied connection string before the runtime starts, allowing you to easily configure and connect the IoT Edge device without the need to start an SSH or remote desktop session.
3232
:::moniker-end
3333

3434
## Deploy using Deploy to Azure Button
@@ -40,7 +40,7 @@ The [Deploy to Azure Button](../azure-resource-manager/templates/deploy-to-azure
4040
[![Deploy to Azure Button for iotedge-vm-deploy](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fazure%2Fiotedge-vm-deploy%2F1.1%2FedgeDeploy.json)
4141
:::moniker-end
4242
:::moniker range=">=iotedge-2020-11"
43-
[![Deploy to Azure Button for iotedge-vm-deploy](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fazure%2Fiotedge-vm-deploy%2F1.3%2FedgeDeploy.json)
43+
[![Deploy to Azure Button for iotedge-vm-deploy](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fazure%2Fiotedge-vm-deploy%2F1.4%2FedgeDeploy.json)
4444
:::moniker-end
4545

4646
1. On the newly launched window, fill in the available form fields:
@@ -152,7 +152,7 @@ The [Deploy to Azure Button](../azure-resource-manager/templates/deploy-to-azure
152152
```azurecli-interactive
153153
az deployment group create \
154154
--resource-group IoTEdgeResources \
155-
--template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.3/edgeDeploy.json" \
155+
--template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.4/edgeDeploy.json" \
156156
--parameters dnsLabelPrefix='my-edge-vm1' \
157157
--parameters adminUsername='<REPLACE_WITH_USERNAME>' \
158158
--parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
@@ -169,7 +169,7 @@ The [Deploy to Azure Button](../azure-resource-manager/templates/deploy-to-azure
169169
#Create a VM using the iotedge-vm-deploy script
170170
az deployment group create \
171171
--resource-group IoTEdgeResources \
172-
--template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.3/edgeDeploy.json" \
172+
--template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.4/edgeDeploy.json" \
173173
--parameters dnsLabelPrefix='my-edge-vm1' \
174174
--parameters adminUsername='<REPLACE_WITH_USERNAME>' \
175175
--parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \

articles/iot-edge/how-to-manage-device-certificates.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ services: iot-edge
1111
---
1212
# Manage certificates on an IoT Edge device
1313

14-
[!INCLUDE [iot-edge-version-201806-or-202011](../../includes/iot-edge-version-201806-or-202011.md)]
14+
[!INCLUDE [iot-edge-version-1.1-or-1.4](./includes/iot-edge-version-1.1-or-1.4.md)]
1515

1616
All IoT Edge devices use certificates to create secure connections between the runtime and any modules running on the device. IoT Edge devices functioning as gateways use these same certificates to connect to their downstream devices, too.
1717

0 commit comments

Comments
 (0)