ACTS Blog Selection
We use machine learning technology to do auto-translation. Click "English" on top navigation bar to check Chinese version.
Organize your IoT software packages and versions using Amazon Web Services IoT Software Package Catalog
Introduction
As the number of connected IoT devices continues to grow and is expected to reach close to
End-to-end software package and version management using Amazon Web Services IoT Software Package Catalog
You can implement a holistic IoT device software package and version management process using this feature and integrated capabilities of Amazon Web Services IoT Device Management. Figure 1 shows the associated process steps:
- IoT device fleet operators use the new Software Package Catalog feature to maintain an inventory of software packages and their versions. Operators can create packages, versions, and associated version attributes to store version metadata. Following the inventory creation, operators can also assign package versions to your IoT devices. As the software changes, you can use the
package version lifecycle states to represent evolving package version status. - As Software Package Catalog integrates with
Amazon Web Services IoT Device Management Fleet Indexing , you can search and aggregate package and version information to gain a complete overview of package versions and aggregated metrics across your fleet centrally. - You can use the integration with
Amazon Web Services IoT Device Management Jobs to deploy package versions across your fleet. You can target specific IoT devices ordevice groups within your fleet to deploy package version to selected devices. For example, you may wish to deploy a new version or a security update to a subset of your fleet such as IoT devices with a battery life greater than a certain percentage value and running specific software package and version. - Amazon Web Services IoT Device Management Jobs performs the required remote operations to download and install new package versions to target devices.
- Once the Amazon Web Services IoT Device Management Job completes successfully, your devices update the associated reserved
Amazon Web Services IoT Named Shadow to reflect the changed state of software packages and versions installed on the device. - Amazon Web Services IoT Device Management Fleet Indexing also uses the reserved Amazon Web Services IoT Named Shadow as a data source to keep your package version and aggregated metrics up-to-date, so you can continue gaining package and version insights centrally.
![IoT device fleet operators use the new Software Package Catalog feature to maintain an inventory of software packages and their versions. Operators can create packages, versions, and associated version attributes to store version metadata. Following the inventory creation, operators can also assign package versions to IoT devices and use AWS IoT jobs to perform package version deployments.](https://rebrand-images.s3.cn-north-1.amazonaws.com.cn/d2908q01vomqb2.cloudfront.net/f6e1126cedebf23e1463aee73f9df08783640400/2023/08/25/AWS-IoT-Software-Package-Catalog-end-to-end.png)
Figure 1. Holistic software package and version management process using the Amazon Web Services IoT Device Management Software Package Catalog
Integrating Amazon Web Services IoT Software Package Catalog with an established in-house software deployment process
If you use Amazon Web Services IoT Core and already have an established in-house process and tools to manage your IoT device fleet, please refer to Figure 2 that shows how the new Software Package Catalog feature can complement and integrate with your existing process:
- As described previously (please refer to Figure 1), IoT device fleet operators can use the new Software Package Catalog feature to maintain an inventory of software packages and their versions. Thus, you can add your existing package, version and IoT device association information to Software Package Catalog, allowing you to search and aggregate this information centrally.
- You can then continue to use an established in-house process to deploy software packages and versions, with the added ability to schedule those deployments based on package and version metadata, and package version lifecycle state to augment your existing in-house process.
- Upon successful completion of your in-house deployment, you can
update package version information by storing the resulting state of installed software packages and versions to the reserved Amazon Web Services IoT Named Shadow, providing change auditing and package and version monitoring capabilities. Furthermore, you can create event-driven integrations with other Amazon Web Services services in response to changes to device packages and versions deployed to your fleet. You can achieve this by subscribing to the relevant Amazon Web Services IoT Named Shadow MQTT topics.
![IoT device fleet operators combine AWS IoT Device Management Software Package Catalog with an existing in-house software deployment process to achieve centralised visibility,](https://rebrand-images.s3.cn-north-1.amazonaws.com.cn/d2908q01vomqb2.cloudfront.net/f6e1126cedebf23e1463aee73f9df08783640400/2023/08/25/AWS-IoT-Software-Package-Catalog-existing.png)
Figure 2. Steps to integrating Amazon Web Services IoT Software Package Catalog with an established in-house software deployment process
Let’s now explore how you can use the new feature to create, associate, deploy and report on software packages and versions across your IoT device fleet.
Prerequisites
- Access to an
Amazon Web Services account - An
IoT device connected toAmazon Web Services IoT Core - For ease of testing, you can use a virtual
Amazon Web Services IoT Device Client running in aDocker container. - You can also refer to the
Get Started with Amazon Web Services IoT workshop for detailed guidance on setting up a virtual IoT device.
- For ease of testing, you can use a virtual
Solution walkthrough
For this walkthrough, we have created a sample fleet consisting of 10 identical IoT devices, equally split across two
![AWS Console showing a sample fleet of 10 IoT devices assigned to two different static AWS IoT thing groups](https://rebrand-images.s3.cn-north-1.amazonaws.com.cn/d2908q01vomqb2.cloudfront.net/f6e1126cedebf23e1463aee73f9df08783640400/2023/08/25/Sample_fleet_02-1024x208.png)
Figure 3. Sample fleet of 10 IoT devices assigned to two different static Amazon Web Services IoT thing groups
To use the new Amazon Web Services IoT Device Management Software Package Catalog feature, you can access the
![The new “Software packages” section in the AWS Console](https://rebrand-images.s3.cn-north-1.amazonaws.com.cn/d2908q01vomqb2.cloudfront.net/f6e1126cedebf23e1463aee73f9df08783640400/2023/08/25/Software_packages_empty-1024x422.png)
Figure 4. The new “Software packages” section in the Amazon Web Services Console
You can follow the steps listed in the Amazon Web Services public documentation to samplePackage01
. During creation we also added the first version v1.0.0
and published it as the default version.
![Using AWS Console to create and publish a new software package “samplePackage01” and an associated default package version “v1.0.0“](https://rebrand-images.s3.cn-north-1.amazonaws.com.cn/d2908q01vomqb2.cloudfront.net/f6e1126cedebf23e1463aee73f9df08783640400/2023/08/25/Software_package_03.png)
Figure 5. Creation and publishing of a new software package “samplePackage01” and an associated default package version “v1.0.0“
You can then associate a published software package version with your IoT device fleet. In this example, we would like to associate samplePackage01
version v1.0.0
with the entire fleet. For example, this approach can be used to reflect the existing device software package baseline state created as part of your IoT client device provisioning process. You can follow the steps listed in the Amazon Web Services public documentation to
![Using AWS console to associate AWS IoT things with a specific software package version](https://rebrand-images.s3.cn-north-1.amazonaws.com.cn/d2908q01vomqb2.cloudfront.net/f6e1126cedebf23e1463aee73f9df08783640400/2023/08/25/Software_package_02.png)
Figure 6. Associating Amazon Web Services IoT things with a specific software package version
Once package version information has been associated, you can samplePackage01
version v1.0.0
:
![Metrics displayed in the AWS IoT Device Management console showing package version association with AWS IoT things](https://rebrand-images.s3.cn-north-1.amazonaws.com.cn/d2908q01vomqb2.cloudfront.net/f6e1126cedebf23e1463aee73f9df08783640400/2023/08/25/Software_package_04-1024x378.png)
Figure 7. Metrics displayed in the Amazon Web Services IoT Device Management console showing package version association with Amazon Web Services IoT things
Furthermore, we can now explore a scenario where we need to deploy a new package version to a subset of our device fleet and automatically record the updated software package state information. For instance, this may be necessary in cases where you need to roll out firmware updates or security patches to your IoT devices.
As the Software Package Catalog feature integrates with v2.0.0
. Figure 8 shows a new custom Job configuration to deploy the newly created samplePackage01
version v2.0.0
to a selected subset of devices, based on the chosen thing group thing-group-1
:
![Creation of a new AWS IoT Job integrated with AWS IoT Device Management Software Package Catalog to deploy a package version to the target AWS IoT thing group using AWS Console](https://rebrand-images.s3.cn-north-1.amazonaws.com.cn/d2908q01vomqb2.cloudfront.net/f6e1126cedebf23e1463aee73f9df08783640400/2023/08/25/Job_03-1014x1024.png)
Figure 8. Creation of a new Amazon Web Services IoT Job integrated with Amazon Web Services IoT Device Management Software Package Catalog to deploy a package version to the target Amazon Web Services IoT thing group
Specifically, you can use the new options provided in the Jobs integration with the Package Catalog service section to define updates to be performed to package version information, after the job is successfully completed. Once the job is created and completed, the updated package version association information reflected in the discovery console, as shown in Figure 9:
![AWS Console showing current version distribution and historical chart in Discovery console of Software Package Catalog](https://rebrand-images.s3.cn-north-1.amazonaws.com.cn/d2908q01vomqb2.cloudfront.net/f6e1126cedebf23e1463aee73f9df08783640400/2023/08/25/Software_package_05-1024x380.png)
Figure 9. Current version distribution and historical chart in Discovery console
The version distribution information has been dynamically updated via the reserved Amazon Web Services IoT Named Shadow, which provides the ability to automate package version data management, in addition to the manual association workflow described previously, as shown in Figure 10:
![Reserved named Shadow reporting an updated version information for samplePackage01 version v2.0.0 following successful completion of the AWS IoT Job](https://rebrand-images.s3.cn-north-1.amazonaws.com.cn/d2908q01vomqb2.cloudfront.net/f6e1126cedebf23e1463aee73f9df08783640400/2023/08/25/Device_shadow_02-1024x391.png)
Figure 10. Reserved named Shadow reporting an updated version information for samplePackage01 version v2.0.0 following successful completion of the Amazon Web Services IoT Job
In addition to the Amazon Web Services Console, you can also use the
Conclusion
Amazon Web Services IoT Device Management Software Package Catalog can now be used with devices connecting to Amazon Web Services IoT Core. The new feature makes it easier to maintain an inventory of software packages and their versions centrally in an integrated manner.
You can associate package versions to individual things and Amazon Web Services IoT dynamic thing groups, and deploy them using in-house software deployment processes or