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-hub-device-update/import-concepts.md
+33-31Lines changed: 33 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,23 +1,23 @@
1
1
---
2
-
title: Understand Device Update for IoT Hub importing
3
-
description: Key concepts for importing a new update into Device Update for IoT Hub.
2
+
title: Azure Device Update for IoT Hub import concepts
3
+
description: Understand key concepts for importing a new update into Azure Device Update for IoT Hub.
4
4
author: andrewbrownmsft
5
5
ms.author: andbrown
6
-
ms.date: 06/27/2022
6
+
ms.date: 01/09/2025
7
7
ms.topic: concept-article
8
8
ms.service: azure-iot-hub
9
9
ms.subservice: device-update
10
10
---
11
11
12
-
# Importing updates into Device Update for IoT Hub
12
+
# Azure Device Update for IoT Hub import concepts
13
13
14
-
In order to deploy an update to devices from Device Update for IoT Hub, you first have to import that update into the Device Update service. The imported update will be stored in the Device Update service and can be deployed from there to devices. This article provides an overview of some important concepts to understand when it comes to importing updates.
14
+
To deploy an update to devices using Azure Device Update for IoT Hub, you first import the update into the Device Update service, which stores the imported update and deploys it to devices. This article provides an overview of some important concepts to understand when it comes to importing updates.
15
15
16
16
## Import manifest
17
17
18
-
An import manifest is a JSON file that defines important information about the update that you're importing. You submit both your import manifest and associated update file or files (such as a firmware update package) as part of the import process. The metadata that is defined in the import manifest is used to ingest the update. Some of the metadata is also used at deployment time - for example, to validate if an update was installed correctly.
18
+
An import manifest is a JSON file that defines important information about the update you're importing. You submit both your import manifest and associated update file or files, such as a firmware update package, as part of the import process. The metadata defined in the import manifest is used to ingest the update. Some of the metadata is also used at deployment time, for example to validate if an update installed correctly.
19
19
20
-
For example:
20
+
The following JSON code shows an example import manifest file:
21
21
22
22
```json
23
23
{
@@ -60,15 +60,15 @@ For example:
60
60
}
61
61
```
62
62
63
-
The import manifest contains several items that represent important Device Update for IoT Hub concepts. These items are outlined in this section. For information about the full import schema, see [Import manifest JSON schema](./import-schema.md).
63
+
The sections of the import manifest file represent important Device Update concepts, as described in the following sections. For information about the full import manifest schema, see [Import manifest JSON schema](./import-schema.md).
64
64
65
65
### Update identity
66
66
67
-
The *update identity* or *updateId* is the unique identifier for an update in Device Update for IoT Hub. It's composed of three parts:
67
+
The *update identity* or `updateId` is the unique identifier for an update in Device Update, and contains the following properties:
68
68
69
-
-**Provider**: entity who is creating or directly responsible for the update. It will often be a company name.
70
-
-**Name**: identifier for a class of updates. It will often be a device class or model name.
71
-
-**Version**: a version number distinguishing this update from others that have the same provider and name.
69
+
-**Provider** is the entity that creates or is responsible for the update. **Provider** is often a company name.
70
+
-**Name** is the identifier for an update class. **Name** is often a device class or model name.
71
+
-**Version** is a number that distinguishes this update from others with the same provider and name.
72
72
73
73
For example:
74
74
@@ -83,13 +83,13 @@ For example:
83
83
```
84
84
85
85
> [!NOTE]
86
-
> UpdateId is used by the Device Update service only, and may be different from the identities of actual software components on the device.
86
+
> The `updateId`is used only by the Device Update service, and is different from the software component identities on the devices.
87
87
88
88
### Compatibility
89
89
90
-
*Compatibility* defines the criteria of a device that can install the update. It contains device properties that are a set of arbitrary key value pairs that are reported from a device. Only devices with matching properties will be eligible for deployment. An update may be compatible with multiple device classes by having more than one set of device properties.
90
+
The **Compatibility** section uses one or more arbitrary key-value pairs to define the devices that can install an update. Only devices that report properties matching the compatibility values are eligible to deploy the update. You can make an update compatible with multiple device classes by including more than one set of device compatibility properties.
91
91
92
-
Here's an example of an update that can only be deployed to a device that reports*Contoso* and *Toaster* as its device manufacturer and model.
92
+
The following example shows an update that can only be deployed to devices that report*Contoso* and *Toaster* as their device manufacturer and model.
93
93
94
94
```json
95
95
{
@@ -104,7 +104,7 @@ Here's an example of an update that can only be deployed to a device that report
104
104
105
105
### Instructions
106
106
107
-
The *Instructions* part contains the necessary information or *steps* for device agent to install the update. The simplest update contains a single inline step. That step executes the included payload file using a *handler* registered with the device agent:
107
+
The **Instructions** section contains the necessary information or steps for the device agent to install the update. The simplest update contains a single inline step that executes the update payload file using a handler registered with the device agent. The following example shows a single-step instructions section.
108
108
109
109
```json
110
110
{
@@ -121,10 +121,10 @@ The *Instructions* part contains the necessary information or *steps* for device
121
121
}
122
122
```
123
123
124
-
> [!TIP]
125
-
> `handler` is equivalent to `updateType` in import manifest version 3.0 or older.
124
+
> [!NOTE]
125
+
> The `handler`property is equivalent to the `updateType` property in import manifest version 3.0 or older.
126
126
127
-
An update may contain more than one step:
127
+
An update can contain more than one step, as in the following example:
128
128
129
129
```json
130
130
{
@@ -152,7 +152,9 @@ An update may contain more than one step:
152
152
}
153
153
```
154
154
155
-
An update may contain *reference* steps that instruct the device agent to install another update with its own import manifest altogether, establishing a parent and child update relationship. For example, an update for a toaster may contain two child updates:
155
+
An update may contain *reference* steps that instruct the device agent to install another update with its own import manifest, establishing a parent and child update relationship. An update can contain any combination of inline and reference steps.
156
+
157
+
For example, an update for a toaster may contain two child updates:
156
158
157
159
```json
158
160
{
@@ -179,31 +181,31 @@ An update may contain *reference* steps that instruct the device agent to instal
179
181
}
180
182
```
181
183
182
-
> [!NOTE]
183
-
> An update may contain any combination of inline and reference steps.
184
184
185
185
### Files
186
186
187
-
The *Files* part contains the metadata of update payload files like their names, sizes, and hash. Device Update for IoT Hub uses this metadata for integrity validation during the import process. The same information is then forwarded to the device agent to repeat the integrity validation prior to installation.
187
+
The **Files** section of the import manifest contains update payload file metadata like `name`, `size`, and `hash`. Device Update uses this metadata for integrity validation during the import process, and forwards the same information to the device agent for integrity validation before installation.
188
188
189
189
> [!NOTE]
190
-
> An update that contains only reference steps won't have any update payload file in the parent update.
190
+
> A parent update that contains only reference steps doesn't define any update payload files.
191
191
192
192
## Create an import manifest
193
193
194
-
While it's possible to author an import manifest JSON manually using a text editor, the Azure Command Line Interface (CLI) simplifies the process greatly. When you're ready to try out the creation of an import manifest, you can use the [How-to guide](create-update.md#create-a-basic-device-update-import-manifest).
194
+
While it's possible to author an import manifest JSON manually using a text editor, the Azure CLI simplifies the process greatly. When you're ready to try out the creation of an import manifest, you can use the [How-to guide](create-update.md#create-a-basic-device-update-import-manifest).
195
195
196
196
> [!IMPORTANT]
197
-
> An import manifest JSON filename must end with `.importmanifest.json` when imported through Azure portal.
197
+
> To import into the Device Update service via the Azure portal, an import manifest JSON filename must end with *.importmanifest.json*.
198
198
199
199
> [!TIP]
200
-
> Use [Visual Studio Code](https://code.visualstudio.com) to enable autocomplete and JSON schema validation when creating an import manifest.
200
+
> You can use [Visual Studio Code](https://code.visualstudio.com) to enable autocomplete and JSON schema validation when you create an import manifest.
201
201
202
-
## Limits on importing updates
202
+
## Update import limits
203
203
204
204
Certain limits are enforced for each Device Update for IoT Hub instance. If you haven't already reviewed them, see [Device Update limits](./device-update-limits.md).
205
205
206
-
## Next steps
206
+
## Related content
207
207
208
-
- To learn more about the import process, see [Prepare an update to import](./create-update.md).
209
-
- Review the [Import manifest schema](./import-schema.md).
0 commit comments