Compartir a través de


Esquema de manifiesto de importación de Azure Device Update for IoT Hub

Al importar una actualización en Azure Device Update for Iot Hub, también envía un archivo de manifiesto de importación JSON asociado que define información importante sobre la actualización. En este artículo se describe el esquema usado para crear el archivo de manifiesto de importación JSON.

Para más información sobre los conceptos del manifiesto de importación y la estructura de archivos, consulte Manifiesto de importación de Azure Device Update for IoT Hub. Para obtener información sobre cómo crear el archivo, consulte Preparación de una actualización para la importación en Device Update for IoT Hub.

Esquema

El esquema JSON del manifiesto de importación se hospeda en SchemaStore.org y consta de las siguientes propiedades. No se permite ninguna otra propiedad.

Propiedad Tipo Descripción Requerido
$schema string Referencia de esquema de JSON. No
updateId updateId Identificador de actualización único.
description string Descripción de actualización opcional. Longitud máxima: 512 caracteres. No
compatibility compatibility Lista de conjuntos de propiedades de dispositivo con los que es compatible esta actualización.
instructions instructions Instrucciones de instalación de la actualización.
files file [0-10] Lista de archivos de carga de actualización. La suma los tamaños de todos los archivos no puede superar los 2 GB. Puede estar vacío o ser null si todos los pasos de instrucción son pasos de referencia. No
manifestVersion string Versión del esquema de manifiesto de importación. Debe ser 5.0.
createdDateTime string Importe la fecha y hora de creación del manifiesto en formato ISO 8601, por ejemplo "2020-10-02T22:18:04.9446744Z".

Actualizar objeto

El objeto updateID es un identificador único para cada actualización.

Propiedad Tipo Descripción Requerido
proveedor string Entidad que está creando la actualización o que es directamente responsable de ella. El proveedor puede ser un nombre de empresa.
Patrón: ^[a-zA-Z0-9.-]+$
Longitud máxima: 64 caracteres
name string Identificador de una clase de actualización. El nombre puede ser una clase de dispositivo o un nombre de modelo.
Patrón: ^[a-zA-Z0-9.-]+$
Longitud máxima: 64 caracteres
version string Números de versión numérica separados por puntos, de dos a cuatro partes. Cada parte debe ser un número entre 0 y 2147483647 y se descartan los ceros iniciales.
Patrón: ^\d+(?:\.\d+)+$
Ejemplos: "1.0", "2021.11.8"

No se permite ninguna otra propiedad.

Por ejemplo:

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  }
}

Objeto de compatibilidad

El objetocompatibility describe entre 1 y 5 propiedades de un dispositivo con el que esta actualización es compatible. Cada propiedad es un par de nombre-valor de tipostring. El nombre debe tener entre 1 y 32 caracteres y el valor debe tener entre 1 y 64 caracteres. No se puede usar el mismo conjunto exacto de propiedades de compatibilidad con más de una combinación de proveedor de actualización y nombre.

Por ejemplo:

{
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ]
}

Objeto de instrucciones

El objeto instructions proporciona las instrucciones de instalación de la actualización. El objeto de instrucciones contiene una lista de steps que se va a realizar. No se permite ninguna otra propiedad.

Los pasos pueden ser código para ejecutar o punteros a otras actualizaciones. Un objeto paso tiene como valor predeterminado inline si no se proporciona ningún valor type.

Propiedad Tipo Descripción Requerido
steps array[1-10] Cada elemento de la matriz steps debe ser un objeto de paso insertado o un objeto de paso de referencia.

Por ejemplo:

{
  "instructions": {
    "steps": [
      {
        "type": "inline",
        ...
      },
      {
        "type": "reference",
        ...
      }
    ]
  }
}

Objeto de paso insertado

Un objeto de pasoinline es un paso de instrucción de instalación que realiza la ejecución de código.

Propiedad Tipo Descripción Obligatorio
type string Tipo de paso de instrucción que realiza la ejecución de código. Debe ser inline. El valor predeterminado es inline si no se proporciona ningún valor. No
description string Descripción del paso de instrucción opcional. Longitud máxima: 64 caracteres. No
handler string Identidad del controlador en el dispositivo que puede ejecutar este paso.
Patrón: ^\S+/\S+:\d{1,5}$
Longitud mínima: cinco caracteres
Longitud máxima: 32 caracteres
Ejemplos: microsoft/script:1, microsoft/swupdate:2, microsoft/apt:1
files string [1-10] Nombres de archivos de actualización definidos como objetos de archivo que el agente pasará al controlador. Cada longitud de elemento debe tener entre 1 y 255 caracteres.
handlerProperties inlineStepHandlerProperties Objetos JSON que el agente pasa al controlador como argumentos. No

No se permite ninguna otra propiedad.

Por ejemplo:

{
  "steps": [
    {
      "description": "pre-install script",
      "handler": "microsoft/script:1",
      "handlerProperties": {
        "arguments": "--pre-install"
      },
      "files": [
        "configure.sh"
      ]
    }
  ]
}

Objeto de paso de referencia

Un objeto de paso reference es un paso de instrucción de instalación para instalar otra actualización.

Propiedad Tipo Descripción Obligatorio
type referenceStepType Tipo de paso de instrucción que instala otra actualización. Debe ser reference.
description stepDescription Descripción del paso de instrucción opcional. Longitud máxima: 64 caracteres. No
updateId updateId Identificador de actualización único.

No se permite ninguna otra propiedad.

Por ejemplo:

{
  "steps": [
    {
      "type": "reference",
      "updateId": {
        "provider": "Contoso",
        "name": "Toaster.HeatingElement",
        "version": "1.0"
      }
    }
  ]
}

Objeto de archivos

Cada objetofiles es un archivo de carga de actualización, como un archivo binario, firmware o script, que debe ser único dentro de una actualización.

Propiedad Tipo Descripción Requerido
filename string Nombre de archivo de carga de Update. Longitud máxima: 255 caracteres
sizeInBytes number Tamaño de archivo en número de bytes. Tamaño máximo: 2147483648 bytes
hashes fileHashes Hashes de archivo codificados en Base64 con el nombre del algoritmo como clave. Se debe especificar al menos el algoritmo SHA-256 y se pueden especificar algoritmos adicionales si es admitido por el agente. Consulte Objeto Hashes para obtener más información sobre cómo calcular el hash.
relatedFiles relatedFile[0-4] Colección de archivos relacionados con uno o varios archivos de carga principal. Para obtener más información, vea objeto relatedFiles. No
downloadHandler downloadHandler Especifica cómo procesar los archivos relacionados. Sí, si usa relatedFiles. Para obtener más información, vea objeto downloadHandler.

No se permite ninguna otra propiedad.

Por ejemplo:

{
  "files": [
    {  
      "fileName": "full-image-file-name",
      "sizeInBytes": 12345,
      "hashes": {...},
      "relatedFiles": [
        {
          "fileName": "delta-from-v1-file-name",
          "sizeInBytes": 1234,
          "hashes": {
            "SHA256": "delta-from-v1-file-hash"
          },
          "properties": {...}
        }  
      ],
      "downloadHandler": {
        "id": "microsoft/delta:1"
        }
    }
  ]
}

Objeto Hashes

El objetohashes contiene hashes de archivo codificados en base64 con los nombres de algoritmo como claves. Se debe especificar al menos el algoritmo SHA-256 y se puede especificar otro algoritmo si es compatible con el agente. Para obtener un ejemplo de cómo calcular el hash correctamente, consulte la función Get-AduFileHashes en el script AduUpdate.psm1.

Propiedad Tipo Descripción Requerido
sha256 string Valor hash de archivo codificado en Base64 mediante el algoritmo SHA-256.

Se permiten otras propiedades.

Por ejemplo:

{
  "hashes": {
    "sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
  }
}

relatedFiles (objeto)

El objeto relatedFiles contiene una colección de archivos relacionados con uno o varios archivos de carga principal. Para más información, consulte Uso de la característica de archivos relacionados para hacer referencia a varios archivos de actualización.

Propiedad Tipo Descripción Requerido
filename string Lista de archivos relacionados asociados a un archivo de carga principal.
sizeInBytes number Tamaño de archivo en número de bytes. Tamaño máximo: 2147483648 bytes.
hashes fileHashes Hashes de archivo codificados en Base64 con el nombre del algoritmo como clave. Para obtener más información, vea Objeto Hashes.
properties relatedFilesProperties [0-5] Límite de cinco pares clave-valor, donde la clave está limitada a 64 caracteres ASCII y el valor es JObject con hasta 256 caracteres ASCII. No

Se permiten otras propiedades.

Por ejemplo:

"relatedFiles": [
  {
    "filename": "in1_in2_deltaupdate.dat",
    "sizeInBytes": 102910752,
    "hashes": {
      "sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
    },
    "properties": {
      "microsoft.sourceFileHashAlgorithm": "sha256",
      "microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
    }
  }
],

downloadHandler (objeto)

El objeto downloadHandler especifica cómo procesar los archivos relacionados.

Propiedad Tipo Descripción Requerido
id string Identificador de downloadHandler. Límite de 64 caracteres ASCII. Sí, si usa relatedFiles

No se permite ninguna otra propiedad.

Por ejemplo:

"downloadHandler": {
  "id": "microsoft/delta:1"
}