Compartir por


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

Si quiere importar una actualización en Device Update para IoT Hub, asegúrese de haber revisado primero los conceptos y la guía paso a paso . Si está interesado en los detalles del esquema de manifiesto de importación o información sobre los permisos de API, consulte a continuación.

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

Esquema

Propiedad Tipo Descripción Obligatorio
$schema string Referencia de esquema JSON. No
identificación de actualización updateId Identificador de actualización único.
descripción string Descripción de actualización opcional.

Longitud máxima: 512 caracteres
No
compatibilidad compatibility Lista de conjuntos de propiedades de dispositivo con la que esta actualización es compatible.
instrucciones instructions Actualice las instrucciones de instalación.
Archivos file [0-10] Lista de archivos de carga de actualización. Es posible que la suma de todos los tamaños de archivo no supere los 2 GB. Puede estar vacío o null si todos los pasos de instrucción son pasos de referencia. No
manifestVersion string Importe la versión del esquema del manifiesto. Debe ser 4.0.
fechaHoraDeCreación string El manifiesto de importación de fecha & hora se creó en formato ISO 8601.

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

No se permiten propiedades adicionales.

updateId(objeto)

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

Propiedad Tipo Descripción Obligatorio
proveedor string Entidad que está creando o responsable directamente de la actualización. Puede ser un nombre de empresa.

Patrón: ^[a-zA-Z0-9.-]+$
Longitud máxima: 64 caracteres
nombre 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
versión string Versiones numéricas de dos a cuatro partes separadas por puntos. Cada parte debe ser un número comprendido entre 0 y 2147483647 y se quitará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 de compatibilidad

El objeto compatibilidad 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 la propiedad: 1
  • Longitud máxima permitida para el valor de la propiedad: 64

No se puede usar el mismo conjunto exacto de propiedades de compatibilidad con más de una combinación de nombre y proveedor de actualizaciones.

Por ejemplo:

{
  "compatibility": [
    {
      "deviceManufacturer": "Contoso",
      "deviceModel": "Toaster"
    }
  ]
}

objeto de instrucciones

El objeto de instrucciones proporciona las instrucciones de instalación de actualizaciones. El objeto de instrucciones contiene una lista de 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 Obligatorio
pasos array[1-10] Cada elemento del array debe ser un objeto inlineStep o un objeto referenceStep de .

No se permiten propiedades adicionales.

Por ejemplo:

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

inlineStep objeto

Un paso en línea del objeto es un paso de instrucción de instalación que ejecuta código.

Propiedad Tipo Descripción Obligatorio
tipo 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
descripción string Descripción opcional del paso de instrucción.

Longitud máxima: 64 caracteres
No
manejador de 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
Archivos string [1-10] Nombres de archivos de actualización definidos como objetos de archivo que el agente pasará al gestor. Cada elemento de la matriz debe tener una longitud entre 1 y 255 caracteres.
propiedades del manejador 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 de referencia es un paso de instrucción de instalación que instala otra actualización.

Propiedad Tipo Descripción Obligatorio
tipo referenceStepType Tipo de paso de instrucciones que instala otra actualización. Debe ser reference.
descripción stepDescription Descripción opcional del paso de instrucción.

Longitud máxima: 64 caracteres
No
identificación de actualización 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 de archivo

Un archivo objeto es un archivo de carga de actualización, por ejemplo, binario, firmware, script, etc. Cada objeto de archivo debe ser único dentro de una actualización.

Propiedad Tipo Descripción Obligatorio
Nombre del archivo string Actualice el nombre del archivo de carga útil.

Longitud máxima: 255 caracteres
tamañoEnBytes number Tamaño del 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 para obtener más información sobre cómo calcular el hash.

No se permiten propiedades adicionales.

Por ejemplo:

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

fileHashes (objeto)

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 otros algoritmos si el agente lo admite. Para obtener un ejemplo de cómo calcular el hash correctamente, consulte la función Get-AduFileHashes en script AduUpdate.psm1.

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

Se permiten propiedades adicionales.

Por ejemplo:

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

Pasos siguientes

Obtenga más información sobre conceptos de importación .

Si estás listo, prueba la Guía de Importación How-To, que te guiará por el proceso de importación paso a paso.