Skip to content

Commit 70805ec

Browse files
committed
3 articles
1 parent ee508ef commit 70805ec

File tree

3 files changed

+156
-198
lines changed

3 files changed

+156
-198
lines changed

articles/iot-hub-device-update/import-concepts.md

Lines changed: 32 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
---
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 manifest
3+
description: Understand the important concepts and sections in the Azure Device Update for IoT Hub import manifest.
44
author: andrewbrownmsft
55
ms.author: andbrown
6-
ms.date: 06/27/2022
6+
ms.date: 12/31/2024
77
ms.topic: concept-article
88
ms.service: azure-iot-hub
99
ms.subservice: device-update
1010
---
1111

12-
# Importing updates into Device Update for IoT Hub
12+
# Azure Device Update for IoT Hub import manifest
1313

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. Along with the update payload, you submit a JSON import manifest file that defines important information about the update. This article describes the important concepts and sections in the import manifest JSON file.
1515

16-
## Import manifest
16+
## The import manifest file
1717

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+
You submit a import manifest JSON file along with the associated update files, such as a firmware update package, as part of the import process. The metadata defined in the import manifest is used both to ingest the update and at deployment time for functions like validating whether the update installed correctly.
1919

20-
For example:
20+
The following JSON code shows an example import manifest file:
2121

2222
```json
2323
{
@@ -60,15 +60,15 @@ For example:
6060
}
6161
```
6262

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

6565
### Update identity
6666

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` provides the unique identifier for an update in Device Update, and contains the following properties:
6868

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, often a company name.
70+
- `name` identifies an update class, often a device class or model name.
71+
- `version` is a number that distinguishes this update from others with the same provider and name.
7272

7373
For example:
7474

@@ -83,13 +83,13 @@ For example:
8383
```
8484

8585
> [!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 might be different from the software component identities on the devices.
8787
8888
### Compatibility
8989

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 defines the devices that can install an update by using one or more arbitrary key-value pairs. 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.
9191

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

9494
```json
9595
{
@@ -104,7 +104,7 @@ Here's an example of an update that can only be deployed to a device that report
104104

105105
### Instructions
106106

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

109109
```json
110110
{
@@ -121,10 +121,10 @@ The *Instructions* part contains the necessary information or *steps* for device
121121
}
122122
```
123123

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.
126126
127-
An update may contain more than one step:
127+
An update and an import manifest `steps` section can contain more than one step, as in the following example:
128128

129129
```json
130130
{
@@ -152,7 +152,7 @@ An update may contain more than one step:
152152
}
153153
```
154154

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 and `steps` section can also contain `reference` steps that instruct the device agent to install a different update along with its own import manifest, establishing a parent and child update relationship. The following example update for a toaster contains two child update steps. An update can contain any combination of inline and reference steps.
156156

157157
```json
158158
{
@@ -179,31 +179,30 @@ An update may contain *reference* steps that instruct the device agent to instal
179179
}
180180
```
181181

182-
> [!NOTE]
183-
> An update may contain any combination of inline and reference steps.
184182

185183
### Files
186184

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.
185+
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.
188186

189187
> [!NOTE]
190-
> An update that contains only reference steps won't have any update payload file in the parent update.
188+
> A parent update that contains only reference steps doesn't define any update payload files.
191189
192190
## Create an import manifest
193191

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).
192+
Once you understand the structure of an import manifest, create an import manifest to describe your update. You can author a JSON import manifest manually using a text editor, but the Azure CLI [az iot du init v5](/cli/azure/iot/du/update/init#az-iot-du-update-init-v5) command simplifies the process. For more information and instructions, see [Prepare an update to import into Device Update](create-update.md).
195193

196194
> [!IMPORTANT]
197-
> An import manifest JSON filename must end with `.importmanifest.json` when imported through Azure portal.
195+
> To import into the Azure portal, an import manifest JSON filename must end with *.importmanifest.json*.
198196
199197
> [!TIP]
200-
> Use [Visual Studio Code](https://code.visualstudio.com) to enable autocomplete and JSON schema validation when creating an import manifest.
198+
> You can use [Visual Studio Code](https://code.visualstudio.com) to enable autocomplete and JSON schema validation when you create an import manifest.
201199
202-
## Limits on importing updates
200+
## Update import limits
203201

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).
202+
Certain limits are enforced for Device Update instances, including import limits. For more information, see [Device Update limits](./device-update-limits.md).
205203

206-
## Next steps
204+
## Related content
207205

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).
206+
- [Import manifest schema](import-schema.md).
207+
- [Prepare an update to import](create-update.md).
208+
- [Import an update](import-update.md)

0 commit comments

Comments
 (0)