Preparando trabajos AWS IoT - AWS IoT Core

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Preparando trabajos AWS IoT

AWS IoT Device Management Software Package Catalog amplía las AWS IoT tareas mediante parámetros de sustitución e integración con la indexación de AWS IoT flotas, los grupos de cosas dinámicos y la AWS IoT cosa reservada llamada shadow.

nota

Para utilizar todas las funciones que ofrece Software Package Catalog, debe crear estas AWS Identity and Access Management (IAM) funciones y políticas: derechos de AWS IoT trabajo para implementar versiones de paquetes y derechos de AWS IoT trabajo para actualizar la sombra reservada denominada. Para más información, consulte Preparación de la seguridad.

Parámetros de sustitución de AWS IoT trabajos

Puede utilizar los parámetros de sustitución como marcador de posición en el documento de AWS IoT trabajo. Cuando el servicio de trabajos encuentra un parámetro de sustitución, dirige el trabajo al atributo de una versión de software determinada para el valor del parámetro. Puede utilizar este proceso para crear un único documento de trabajo y pasar los metadatos al trabajo mediante atributos de uso general. Por ejemplo, puede pasar un Amazon Simple Storage Service (Amazon S3)URL, un paquete de software Amazon Resource Name (ARN) o una firma en el documento de trabajo mediante los atributos de la versión del paquete.

El parámetro de sustitución debe tener el siguiente formato en el documento de trabajo:

${aws:iot:package:<packageName>:version:<versionName>:attributes:<anyAttributeName>}

En este ejemplo, hay un paquete de software denominado samplePackage, y tiene una versión de paquete denominada 2.1.5 que tiene los siguientes atributos:

  • Nombre: s3URL, valor: https://EXAMPIEBUCKET.s3.us-west-2.amazonaws.com/exampleCodeFile

    • Este atributo identifica la ubicación del archivo de código almacenado en Amazon S3.

  • Nombre: signature, valor: aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjj

    • Este atributo proporciona un valor de firma de código que el dispositivo requiere como medida de seguridad. Para obtener más información, consulte Firma de código para trabajos. Nota: Este atributo es un ejemplo y no es obligatorio como parte del catálogo de paquetes de software ni de los trabajos.

En el caso de downloads, el parámetro del documento de trabajo se escribe de la siguiente manera:

{ "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:s3URL}" }

En el caso de signature, el parámetro del documento de trabajo se escribe de la siguiente manera:

{ "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:signature}" }

El documento de trabajo completo está redactado de la siguiente manera:

{ ... "Steps": { "uninstall": ["samplePackage"], "download": [ { "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:s3URL}" }, ], "signature": [ "samplePackage" : "${aws:iot:package:samplePackage1:version:2.1.5:attributes:signature}" ] } }

Una vez realizada la sustitución, se implementa el siguiente documento de trabajo en los dispositivos:

{ ... "Steps": { "uninstall": ["samplePackage"], "download": [ { "samplePackage": "https://EXAMPIEBUCKET.s3.us-west-2.amazonaws.com/exampleCodeFile" }, ], "signature": [ "samplePackage" : "aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjj" ] } }

Para obtener más información sobre los AWS IoT trabajos, la creación de documentos de trabajo y la implementación de trabajos, consulte Jobs.

Preparación del documento de trabajo y la versión del paquete para su implementación

Cuando se crea una versión de paquete, está en un draft estado que indica que se está preparando para su despliegue. Para preparar la versión del paquete para su despliegue, debe crear un documento de trabajo, guardar el documento en una ubicación a la que pueda acceder el trabajo (como Amazon S3) y confirmar que la versión del paquete tiene los valores de atributo que desea que utilice el documento de trabajo. (Nota: solo puede actualizar los atributos de una versión de paquete mientras esté en ese draft estado).

Cuando esté satisfecho con la versión del paquete, publíquela en la página de detalles del paquete de software de la AWS IoT consola o ejecute la UpdatePackageVersionAPIoperación. A continuación, puede hacer referencia a la versión del paquete al crear el trabajo a través de la AWS IoT consola o ejecutando la CreateJobAPIoperación.

Asignar un nombre a los paquetes y las versiones al desplegarlos

Al implementar un AWS IoT trabajo, debe nombrar los mismos paquetes de software y versiones del paquete que aparecen en el documento del trabajo en la implementación del trabajo (destinationPackageVersions). Si no lo hace, recibirá un mensaje de error en el que se indicarán las versiones del paquete que faltan.

Puede incluir paquetes de software adicionales y versiones de paquetes que no estén incluidas en el documento de trabajo. Si lo hace, el trabajo no proporciona instrucciones al dispositivo sobre qué hacer con esos archivos y se espera que el dispositivo sepa qué hacer. Por ejemplo, puede enviar archivos adicionales al dispositivo si contienen datos a los que el dispositivo pueda hacer referencia.

Segmentar los trabajos mediante grupos de cosas AWS IoT dinámicos

El Catálogo de paquetes de software funciona con la indexación de flotas, los trabajos AWS IoT y los grupos de cosas AWS IoT dinámicos para filtrar y segmentar los dispositivos de su flota para seleccionar qué versión de paquete implementar en sus dispositivos. Puedes ejecutar una consulta de indexación de la flota en función de la información actual del paquete de tu dispositivo y segmentar esas cosas para un AWS IoT trabajo. También puede lanzar actualizaciones de software, pero sólo a los dispositivos de destino elegibles. Por ejemplo, puede especificar que desea implementar una configuración solo en los dispositivos en los que actualmente se ejecuta iot-device-client 1.5.09. Para más información, consulte Crear un grupo de cosas dinámico.

Versiones reservadas de paquetes y sombras con nombre

Si está configurado, AWS IoT Jobs puede actualizar la reserva de una cosa llamada shadow ($package) cuando la tarea se complete correctamente. Si lo hace, no necesita asociar manualmente la versión de un paquete a la versión reservada de una cosa llamada shadow.

Puede optar por asociar o actualizar manualmente una versión de paquete a la sombra de nombre reservado de la cosa en las siguientes situaciones:

  • Se registra algo AWS IoT Core sin asociar la versión del paquete instalado.

  • AWS IoT Jobs no está configurado para actualizar la cosa reservada llamada shadow.

  • Utilizas un proceso interno para enviar las versiones de los paquetes a tu flota y ese proceso no AWS IoT Core se actualiza cuando se completa.

nota

Te recomendamos que utilices AWS IoT Jobs para actualizar la versión del paquete en la sección reservada denominada shadow ($package). Si se actualiza el parámetro de versión en la $package sombra mediante otros procesos (por ejemplo, API llamadas manuales o programáticas) y AWS IoT Jobs también está configurado para actualizar la sombra, se pueden producir incoherencias entre la versión real del dispositivo y la versión reportada a la versión reservada denominada shadow.

Puedes añadir o actualizar la versión de un paquete a una versión reservada llamada shadow ($package) a través de la consola o de la operación. UpdateThingShadowAPI Para obtener más información, consulte Asociar una versión de paquete a una AWS IoT cosa.

nota

Al asociar una versión de paquete a una AWS IoT cosa, no se actualiza directamente el software del dispositivo. Debe implementar la versión del paquete en el dispositivo para actualizar el software del dispositivo.

Desinstalación de un paquete de software y de su versión

$nulles un marcador de posición reservado que solicita al servicio AWS IoT Jobs que elimine el paquete de software y la versión del paquete existentes de la sombra reservada denominada del dispositivo. $package Para obtener más información, consulte Sombra con nombre reservado.

Para utilizar esta función, sustituya el nombre de la versión al final del nombre del recurso de destinationPackageVersionAmazon (ARN) por$null. Después, debe indicar a su servicio que elimine el software del dispositivo.

El autorizado ARN utiliza el siguiente formato:

arn:aws:iot:<regionCode>:111122223333:package/<packageName>/version/$null

Por ejemplo:

$ aws iot create-job \ ... \ --destinationPackageVersions ["arn:aws:iot:us-east-1:111122223333:package/samplePackage/version/$null"]