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.
Preparación para utilizar el Catálogo de paquetes de software
La siguiente sección proporciona una descripción general del ciclo de vida de las versiones del paquete e información para usar el catálogo de paquetes de AWS IoT Device Management software.
Ciclo de vida de la versión de paquete
La versión de un paquete puede evolucionar a través de los siguientes estados del ciclo de vida: draft, published ydeprecated. También puede ser deleted.
Borrador
Cuando se crea una versión de paquete, este tiene el estado
draft. Este estado indica que el paquete de software se está preparando o está incompleto.Mientras la versión del paquete tenga este estado, no se podrá implementar. Puede editar la descripción, los atributos y las etiquetas de la versión del paquete.
Puede hacer la transición de una versión de paquete que esté en ese
draftestado apublishedo en estado actualdeletedmediante la consola o mediante la ejecución de las operaciones de DeletePackageVersion API. UpdatePackageVersionPublicado
Cuando la versión del paquete esté lista para implementarse, pase la versión del paquete al estado
published. Mientras estés en este estado, puedes elegir identificar la versión del paquete como la versión predeterminada editando el paquete de software en la consola o mediante la operación de la UpdatePackage API. En este estado, solo puede editar la descripción y las etiquetas.Puedes hacer la transición de una versión de paquete que esté en ese
publishedestado adeprecatedla versión anteriordeletedmediante la consola o mediante la ejecución de las operaciones de DeletePackageVersion API UpdatePackageVersion o.Obsoleto
Si hay disponible una nueva versión del paquete, puede realizar la transición a una versión anterior del paquete a
deprecated. De todos modos, puede seguir implementando trabajos con una versión de paquete obsoleta. También puede nombrar una versión de paquete obsoleta como la versión predeterminada y editar solo la descripción y las etiquetas.Considere la posibilidad de hacer la transición de una versión de paquete a
deprecatedcuando la versión esté desactualizada pero todavía usa dispositivos que tienen la versión anterior o deba mantenerla debido a la dependencia del tiempo de ejecución.Puedes hacer la transición de una versión de paquete que esté en ese
deprecatedestado apublishedo en estado actualdeletedmediante la consola o mediante la ejecución de las operaciones de DeletePackageVersion API UpdatePackageVersion o.Eliminado
Cuando ya no vayas a usar una versión de paquete, puedes eliminarla mediante la consola o mediante la operación de la DeletePackageVersion API.
nota
Si elimina una versión de paquete mientras hay trabajos pendientes que hacen referencia a ella, recibirá un mensaje de error cuando el trabajo finalice con éxito e intente actualizar la sombra con nombre reservado.
Si la versión del paquete de software que desea eliminar aparece como la versión del paquete por defecto, primero debe actualizar el paquete para nombrar otra versión como predeterminada o dejar el campo sin nombre. Puede hacerlo mediante la consola o la operación de la UpdatePackageVersion API. (Para eliminar cualquier versión del paquete con nombre de forma predeterminada, defina el DefaultVersion parámetro unset en true cuando ejecute la operación de UpdatePackage API).
Si elimina un paquete de software a través de la consola, se eliminan todas las versiones del paquete asociadas a ese paquete, a menos que una de ellas se nombre como versión por defecto.
Convenciones de nomenclatura de versiones de paquetes
Al asignar nombres a las versiones de los paquetes, es importante planificar y aplicar una estrategia de nomenclatura lógica para que usted y los demás puedan identificar fácilmente la última versión del paquete y su progresión. Debe proporcionar un nombre de versión al crear la versión del paquete, pero la estrategia y el formato dependen en gran medida de su modelo de negocio.
Como práctica recomendada, recomendamos usar el formato de control de versiones SemVer 1.2.3 donde 1 es la versión principal para los cambios funcionalmente incompatibles, 2 la versión principal para los cambios compatibles desde el punto de vista funcional y 3 la versión de parche (para las correcciones de errores) Para obtener más información, consulte Semantic Versioning 2.0.0
Versión predeterminada
Establecer una versión como predeterminada es opcional. Puede agregar o eliminar versiones de paquete predeterminadas. También puede implementar una versión de paquete que no figure como la versión predeterminada.
Al crear una versión de paquete, se coloca en un estado draft y no se le puede asignar el nombre de versión predeterminada hasta que se haga la transición de la versión del paquete a publicada. El catálogo de paquetes de software no selecciona automáticamente una versión como predeterminada ni actualiza una versión de paquete más reciente como predeterminada. Debes asignar un nombre intencionado a la versión del paquete que elijas a través de la consola o ejecutando la operación de UpdatePackageVersion API.
Atributos de la versión
Los atributos de versión y sus valores contienen información importante sobre las versiones de los paquetes. Se recomienda definir los atributos de uso general para un paquete o una versión del paquete. Por ejemplo, puede crear un par nombre-valor para la plataforma, la arquitectura, el sistema operativo, la fecha de lanzamiento, el autor o la URL de Amazon S3.
Cuando creas un AWS IoT trabajo con un documento de trabajo, también puedes optar por usar una variable de sustitución ($parameter) que haga referencia al valor de un atributo. Para obtener más información, consulte Preparar AWS IoT trabajos.
Los atributos de versión que se utilizan en las versiones de paquetes no se añadirán automáticamente a la sombra reservada denominada y no se podrán indexar ni consultar directamente a través de la indexación de flotas. Para indexar o consultar los atributos de la versión del paquete mediante la indexación de flotas, puede rellenar el atributo de la versión en la sombra reservada con nombre.
Se recomienda que el parámetro del atributo de versión de la reserva se llame Shadow Capture las propiedades informadas por el dispositivo, como el sistema operativo y el tiempo de instalación. También se pueden indexar y consultar mediante la indexación de flotas.
No es necesario que los atributos de la versión sigan una convención de nomenclatura específica. Puede crear pares de nombre-valor para satisfacer las necesidades de su empresa. El tamaño combinado de todos los atributos de una versión de paquete está limitado a 3 KB. Para obtener más información, consulte Límites de paquetes de software y versiones de paquetes del Catálogo de paquetes de software.
Uso de todos los atributos de un documento de trabajo
Puede hacer que todos los atributos de la versión del paquete se añadan automáticamente a la implementación de su trabajo para los dispositivos seleccionados. Para utilizar automáticamente todos los atributos de la versión del paquete mediante programación en un comando de la API o la CLI, consulte el siguiente ejemplo de documento de trabajo:
"TestPackage": "${aws:iot:package:TestPackage:version:PackageVersion:attributes}"
Lista de materiales de software
La lista de materiales de software (SBOM) proporciona un repositorio central para todos los aspectos del paquete de software. Además de almacenar los paquetes y las versiones de los paquetes de software, puede almacenar la lista de materiales del software (SBOM) asociada a cada versión del paquete en el catálogo de paquetes de AWS IoT Device Management software. El paquete de software contiene una o más versiones de paquete y cada versión de paquete consta de uno o más componentes. Cada uno de esos componentes que sirven de base para componer una versión de paquete específica se puede describir y catalogar mediante una lista de materiales de software. Los estándares del sector para la lista de materiales de software admitidos son SPDX y CyclonedX. Cuando se crea una SBOM por primera vez, se somete a validación según el formato estándar del sector SPDX y CyclonedX. Para obtener más información sobre SPDX, consulte System Package Data Exchange
La lista de materiales de software describe todos los aspectos de los componentes de una versión de paquete específica, como la información del paquete, la información del archivo y otros metadatos pertinentes. Consulte el siguiente ejemplo de la estructura de un documento de una lista de materiales de software en formato SPDX:
Ventajas de la lista de materiales de software
Una de las principales ventajas de añadir la lista de materiales de software para una versión de paquete en el Catálogo de paquetes de software es la administración de vulnerabilidades.
Administración de vulnerabilidades
Evaluar y mitigar su vulnerabilidad ante los aparentes riesgos de seguridad de los componentes de software sigue siendo fundamental para proteger la integridad de la flota de dispositivos. Al añadir la lista de materiales de software almacenada en el Catálogo de paquetes de software para cada versión de paquete, puede exponer de forma proactiva las brechas de seguridad al saber qué dispositivos están en riesgo en función de su versión de paquete y de la SBOM usando su propia solución interna de administración de vulnerabilidades. Puede implementar correcciones en los dispositivos afectados y proteger su flota de dispositivos.
Almacenamiento de la lista de materiales de software
La lista de materiales de software (SBOM) de cada versión del paquete de software se almacena en un bucket de Amazon S3 con la característica de control de versiones de Amazon S3. El bucket de Amazon S3 que almacena la SBOM debe estar ubicado en la misma región en la que se creó la versión del paquete. El bucket de Amazon S3 que utiliza la característica de control de versiones mantiene diversas variantes de un objeto en el mismo bucket. Para obtener más información sobre el uso del control de versiones en un bucket de Amazon S3, consulte Uso de control de versiones en buckets de Amazon S3.
nota
Cada versión del paquete de software puede tener varios archivos SBOM asociados a él, pero los archivos SBOM deben almacenarse en un único archivo zip.
La clave de Amazon S3 y el ID de versión específicos de su bucket se utilizan para identificar de forma exclusiva cada versión de una lista de materiales de software para una versión de paquete.
nota
Para una versión de paquete con un único archivo SBOM, puede almacenar ese archivo SBOM en su bucket de Amazon S3 como archivo zip.
Para una versión de paquete con varios archivos SBOM, debe colocar todos los archivos SBOM en un único archivo zip y, a continuación, almacenar ese archivo zip en su bucket de Amazon S3.
Todos los archivos SBOM almacenados en un único archivo zip en ambos escenarios tienen el formato de archivo .json de SPDX o CyclonedX.
Política de permisos
Para poder AWS IoT actuar como el principal especificado para acceder a los archivos zip de la SBOM almacenados en el bucket de Amazon S3, necesita una política de permisos basada en los recursos. Consulte el siguiente ejemplo para conocer la política de permisos basada en recursos correcta:
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "iot.amazonaws.com" ] }, "Action": "s3:*", "Resource": "arn:aws:s3:::bucketName/*" } ] }
Para obtener más información sobre las políticas de permisos basadas en recursos, consulte AWS IoT políticas basadas en recursos.
Actualización de la SBOM
Puede actualizar la lista de materiales del software tantas veces como sea necesario para proteger y mejorar su flota de dispositivos. Cada vez que se actualiza la lista de materiales de software en el bucket de Amazon S3, el ID de versión cambia y usted debe asociar la nueva URL del bucket de Amazon S3 a la versión del paquete de software correspondiente. Verá el nuevo ID de versión en la columna ID de versión del objeto de Amazon S3 en la página de la versión del paquete en la Consola de administración de AWS. Además, puede usar la operación de la API GetPackageVersion o el comando de la CLI get-package-version para ver el nuevo ID de versión.
nota
La actualización de la lista de materiales de software, que generará un nuevo ID de versión, no provocará la creación de una nueva versión del paquete.
Para obtener más información acerca de las claves de objeto de Amazon S3, consulte Creación de nombres de clave de objeto.
Habilitación AWS IoT indexación de flotas
Para usar el AWS IoT catálogo de paquetes de software, es necesario habilitar la indexación de flotas. AWS IoT Device Management Para aprovechar la indexación de flotas de AWS IoT con el Catálogo de paquetes de software, establezca la sombra con nombre reservada ($package) como el origen de datos para cada dispositivo que desee indexar y del que recopilar métricas. Para obtener más información sobre las sombras con nombre reservadas, consulte Sombra con nombre reservado.
La indexación de flotas proporciona soporte que permite agrupar AWS IoT las cosas en grupos de cosas dinámicos que se filtran por versión del paquete de software. Por ejemplo, la indexación de flotas puede identificar elementos que tienen o no una versión de paquete específica instalada, que no tienen ninguna versión de paquete instalada o que coinciden con pares de nombre y valor específicos. Por último, la indexación de la flota proporciona métricas estándar y personalizadas que puede utilizar para obtener más información sobre el estado de su flota de dispositivos. Para obtener más información, consulte Preparación para la indexación de flotas.
nota
Habilitar la indexación de flotas para el Catálogo de Paquetes de Software incurre en costes de servicio estándar. Para obtener más información, consulte Precios de AWS IoT Device Management
Sombra con nombre reservado
El nombre reservado shadow, $package, refleja el estado de los paquetes de software y las versiones de los paquetes instalados en el dispositivo. La indexación de flotas utiliza la sombra con nombre reservado como origen de datos para crear métricas estándar y personalizadas que le permitan consultar el estado de su flota. Para más información, consulte Preparación de la indexación de flotas.
Una sombra con nombre reservado es similar a una sombra con nombre, con la excepción de que su nombre está predefinido y no se puede cambiar. Además, la sombra reservada con nombre asignado no se actualiza con los metadatos y solo usa las palabras clave version y attributes.
Las solicitudes de actualización que incluyan otras palabras clave, por ejemplo description, recibirán una respuesta de error en relación con el tema rejected. Para más información, consulte Mensajes de error de Device Shadow.
Se puede crear al crear una AWS IoT cosa a través de la consola, cuando una AWS IoT tarea finaliza correctamente y se actualiza la sombra, y si se ejecuta la operación de UpdateThingShadow API. Para obtener más información, consulta UpdateThingShadow la guía para AWS IoT Core desarrolladores.
nota
La indexación de la sombra con nombre reservada no cuenta para el número de sombras con nombre que la indexación de flotas puede indexar. Para más información, consulte Límites y cuotas de indexación de flotas AWS IoT Device Management. Además, si decides que AWS IoT Jobs actualice la opción reservada denominada shadow cuando una tarea se complete correctamente, la llamada a la API se contabiliza para tus operaciones de registro y sombra de dispositivos, y puede tener un coste. Para obtener más información, consulta los límites y las cuotas de los AWS IoT Device Management trabajos y el tipo de datos de la IndexingFilter API.
Estructura de la sombra $package
La sombra reservada con el nombre contiene lo siguiente:
{
"state": {
"reported": {
"<packageName>": {
"version": "",
"attributes": {
}
}
}
},
"version" : 1
"timestamp" : 1672531201
}
Las propiedades de la sombra se actualizan con la siguiente información:
-
<packageName>: el nombre del paquete de software instalado, que se actualiza con el parámetro packageName. -
version: El nombre de la versión del paquete instalado, que se actualiza con el parámetro versionName. -
attributes: metadatos opcionales almacenados por el dispositivo e indexados mediante la indexación de flotas. Esto permite a los clientes consultar sus índices en función de los datos almacenados. -
version: El número de versión de la sombra. Se incrementa automáticamente cada vez que se actualiza la sombra y comienza en1. -
timestamp: Indica cuándo se actualizó por última vez la sombra y se registra en tiempo Unix.
Para obtener más información sobre el formato y el comportamiento de una sombra con nombre, consulte Orden de los mensajes Servicio de sombra de dispositivo de AWS IoT.
Eliminar un paquete de software y sus versiones
Antes de eliminar un paquete de software, haga lo siguiente:
Confirme que el paquete y sus versiones no se estén implementando activamente.
Elimine primero todas las versiones asociadas. Si una de las versiones está designada como la versión predeterminada, debe eliminar la versión predeterminada nombrada del paquete. Como la designación de una versión predeterminada es opcional, no hay ningún conflicto al eliminarla. Para eliminar la versión predeterminada del paquete de software, edítelo a través de la consola o utilice la operación de la UpdatePackageVersion API.
Mientras no haya una versión de paquete predeterminada con nombre, puede usar la consola para eliminar un paquete de software y también se eliminarán todas sus versiones del paquete. Si utiliza una llamada a la API para eliminar paquetes de software, primero debe eliminar las versiones del paquete y, a continuación, el paquete de software.