Comparteix a través de


Importación de actualizaciones a Device Update para IoT Hub: esquema y otra información

Si quiere importar una actualización a Device Update para IoT Hub, asegúrese de revisar primero los conceptos y la guía paso a paso. Si está interesado en los detalles del esquema del manifiesto de importación propiamente dicho, continúe leyendo.

El esquema JSON del manifiesto de importación se hospeda en SchemaStore.org.

Schema

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 de todos los tamaños de archivo 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 El manifiesto de importación de fecha y hora se creó en formato ISO 8601.

Ejemplo: "2020-10-02T22:18:04.9446744Z"

No se permiten propiedades adicionales.

Objeto updateId

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. 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. 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 descartarán los ceros iniciales.

Patrón: ^\d+(?:\.\d+)+$
Ejemplos: "1.0", "2021.11.8"

No se permiten propiedades adicionales.

Por ejemplo:

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

Objeto compatibility

El objeto compatibility describe las propiedades de un dispositivo con el que esta actualización es compatible.

  • Tipo: object
  • Propiedades mínimas: 1
  • Propiedades máximas: 5

Cada propiedad es un par nombre-valor de tipo cadena.

  • Longitud mínima del nombre de propiedad: 1
  • Longitud máxima del nombre de propiedad: 32
  • Longitud mínima del valor de propiedad: 1
  • Longitud máxima del valor de propiedad: 64

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 instructions

El objeto instructions proporciona las instrucciones de instalación de la actualización. El objeto instructions contiene una lista de los pasos que se van a realizar. Los pasos pueden ser código para ejecutar o un puntero a otra actualización.

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

No se permiten propiedades adicionales.

Por ejemplo:

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

Objeto inlineStep

Un objeto de paso inline 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: 5 caracteres
Longitud máxima: 32 caracteres
Ejemplos: microsoft/script:1, microsoft/swupdate:1, microsoft/apt:1
files string [1-10] Nombres de archivos de actualización definidos como objetos file que el agente pasará al controlador. Cada elemento de la matriz debe tener una longitud entre 1 y 255 caracteres.
handlerProperties inlineStepHandlerProperties Objeto JSON que el agente pasará al controlador como argumentos. No

No se permiten propiedades adicionales.

Por ejemplo:

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

Objeto referenceStep

Un objeto de paso reference es un paso de instrucción de instalación que instala 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 permiten propiedades adicionales.

Por ejemplo:

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

Objeto file

Un objeto file es un archivo de carga de actualización, por ejemplo, binario, firmware, script, etc. Cada objeto file 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 puede especificar un algoritmo adicional si es compatible con el agente. Consulte a continuación los detalles sobre cómo calcular el hash.
relatedFiles relatedFile[0-4] Colección de archivos relacionados con uno o varios de los archivos de carga principales. No
downloadHandler downloadHandler Especifica cómo procesar los archivos relacionados. Sí, si solo si usa relatedFiles.

No se permiten propiedades adicionales.

Por ejemplo:

{
  "files": [
    {
      "filename": "configure.sh",
      "sizeInBytes": 7558,
      "hashes": {...}
    }
  ]
}

Objeto 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 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 propiedades adicionales.

Por ejemplo:

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

relatedFiles (objeto)

Colección de archivos relacionados con uno o varios de los archivos de carga principales.

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. Se debe especificar al menos el algoritmo SHA-256 y se puede especificar un algoritmo adicional si es compatible con el agente. Consulte a continuación los detalles sobre cómo calcular el hash.
properties relatedFilesProperties [0-5] Límite de 5 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 propiedades adicionales.

Por ejemplo:

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

Para más información, consulte Uso de la característica de archivos relacionados para hacer referencia a varios archivos de actualización.

downloadHandler (objeto)

Especifica cómo procesar los archivos relacionados.

Propiedad Tipo Descripción Requerido
id string Identificador de downloadHandler. Límite de 64 caracteres ASCII.

No se permiten propiedades adicionales.

Por ejemplo:

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

Pasos siguientes

Obtenga más Información sobre los conceptos de la importación.

Cuando está listo, pruebe la guía de procedimientos de importación, que le guiará a través del proceso de importación paso a paso.