使用 亚马逊云科技 IoT 软件包目录整理您的 IoT 软件包和版本

简介

随着互联物联网设备数量的持续增长,预计到 20 30年将达到近300亿 台 ,大规模有效管理联网设备群的需求也将增加。物联网设备群管理通常包括将软件包部署到物联网设备,这些软件包可以包括包含固件、操作系统更新、设备应用程序、配置和安全补丁的软件包版本。 亚马逊云科技 IoT Device Manag ement 是一项托管服务,可帮助您注册、组织、监控和远程管理不断增长的联网设备群。

软件包目录 是 亚马逊云科技 IoT Device Management 的一项新功能,允许您在一个集中位置注册、存储和报告系统软件包及其版本和元数据。在这篇博客中,我们将介绍您现在如何轻松地在整个机群中组织和部署软件包和版本,集中获取见解,并使用这项新功能执行有针对性的设备版本更新。

使用 亚马逊云科技 IoT 软件包目录进行端到端软件包和版本管理

您可以使用 亚马逊云科技 IoT Device Management 的这一功能和集成功能来实施整体的 IoT 设备软件包和版本管理流程。图 1 显示了相关的流程步骤:

  1. 物联网设备机群运营商使用新的软件包目录功能来维护软件包及其版本的清单。操作员可以创建软件包、版本和相关的版本属性来存储版本元数据。创建库存后,运营商还可以为您的物联网设备分配软件包版本。随着软件的变化,您可以使用软件 包版本生命周期 状态来表示不断变化的软件包版本状态。
  2. 由于软件包目录与 亚马逊云科技 IoT Device Management 舰队索引 集成,您可以搜索和汇总软件包和版本信息,以便集中全面了解包版本和集群中的汇总指标。
  3. 您可以使用与 亚马逊云科技 IoT Device Management Job s 的集成,在您的队列中部署软件包版本。您可以将队列 中的特定物联网 设备或设备组 作为目标,将软件包版本部署到选定的设备。例如,您可能希望将新版本或安全更新部署到机群的子集,例如电池寿命大于一定百分比值且运行特定软件包和版本的物联网设备。
  4. 亚马逊云科技 IoT Device Management Jobs 执行所需的远程操作,将新的软件包版本下载并安装到目标设备。
  5. 亚马逊云科技 IoT 设备管理任务成功完成后,您的设备会更新相关的保留 亚马逊云科技 IoT Named Shadow , 以反映设备上安装的软件包和版本的变化状态。
  6. 亚马逊云科技 IoT Device Management 舰队索引还使用预留的 亚马逊云科技 IoT Named Shadow 作为数据源,以保持您的包版本和汇总指标处于最新状态,因此您可以继续集中获取套餐和版本见解。
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.

图 1。使用 亚马逊云科技 IoT Device Management 软件包目录进行整体软件包和版本管理流程

将 亚马逊云科技 IoT 软件包目录与既定的内部软件部署流程集成

如果您使用 亚马逊云科技 IoT Core 并且已经建立了管理您的 IoT 设备队列的内部流程和工具,请参阅图 2,该图显示了新的软件包目录功能如何补充您的现有流程并与之集成:

  1. 如前所述(请参阅图 1),物联网设备机群运营商可以使用新的软件包目录功能来维护软件包及其版本的清单。因此,您可以将现有的软件包、版本和物联网设备关联信息添加到软件包目录中,从而可以集中搜索和汇总这些信息。
  2. 然后,您可以继续使用既定的内部流程来部署软件包和版本,还可以根据软件包和版本元数据以及软件包版本生命周期状态来安排这些部署,以增强现有的内部流程。
  3. 成功完成内部部署后,您可以 通过将已安装软件 包和版本的结果状态存储到保留的 亚马逊云科技 IoT Named Shadow 来 更新软件包版本信息 ,从而提供变更审计、软件包和版本监控功能。此外,您可以与其他 亚马逊云科技 服务创建事件驱动的集成,以响应部署到您的队列的设备包和版本的变化。您可以通过订阅相关的 亚马逊云科技 IoT 命名 Shadow MQTT 主题来实现这一点。
IoT device fleet operators combine AWS IoT Device Management Software Package Catalog with an existing in-house software deployment process to achieve centralised visibility,

图 2。将 亚马逊云科技 IoT 软件包目录与既定的内部软件部署流程集成的步骤

现在,让我们探讨如何使用新功能来创建、关联、部署和报告物联网设备群中的软件包和版本。

先决条件

  • 访问 A WS 账户
  • 连接到 亚马逊云科技 IoT Core 的物联网 设备
    • 为了便于测试,您可以使用在 Docker 容器中 运行的虚拟 亚马逊云科技 IoT 设备客户端
    • 您也可以参阅 亚马逊云科技 IoT 入门 研讨会, 了解 有关设置虚拟 IoT 设备的详细指南。

解决方案演练

在本演练中,我们创建了一个由 10 台相同的 IoT 设备组成的示例队列,平均分配到两个 亚马逊云科技 IoT 静态事物组 中 ,以便稍后演示有针对性的软件包版本部署:

AWS Console showing a sample fleet of 10 IoT devices assigned to two different static AWS IoT thing groups

AWS Console showing a sample fleet of 10 IoT devices assigned to two different static AWS IoT thing groups

图 3。分配给两个不同静态 亚马逊云科技 IoT 事物组的 10 台 IoT 设备的示例队列

要使用新的 亚马逊云科技 IoT Device Management 软件包目录功能,您可以访问 亚马逊云科技 IoT 控制台中的软件包 部分,如图 4 所示。

The new “Software packages” section in the AWS Console

图 4。亚马逊云科技 控制台中新的 “软件包” 部分

您可以按照 亚马逊云科技 公共文档中列出的步骤 创建新的软件包和软件包版本 。在本演练中,我们创建了一个名为 s am plePackage01 的示例包。在创建过程中,我们还添加了第一个版本 v1.0.0 并将其作为默认版本发布。

Using AWS Console to create and publish a new software package “samplePackage01” and an associated default package version “v1.0.0“

Using AWS Console to create and publish a new software package “samplePackage01” and an associated default package version “v1.0.0“

图 5。创建和发布新的软件包 “SamplePackage01” 和相关的默认软件包版本 “v1.0.0”

然后,您可以将已发布的软件包版本与您的 IoT 设备群相关联。在此示例中,我们想将 SamplePackage01 版本 v1. 0.0 与整个舰队关联起来。例如,此方法可用于反映在物联网客户端设备配置过程中创建的现有设备软件包基准状态。您可以按照 亚马逊云科技 公共文档中列出的步骤 将软件包版本 与您的设备队列关联 以反映现有软件包和版本状态。

Using AWS console to associate AWS IoT things with a specific software package version

图 6。将 亚马逊云科技 IoT 事物与特定的软件包版本相关联

关联软件包版本信息后, 您可以使用通过 亚马逊云科技 IoT 舰队索引收集的数据 来搜索和汇总通过软件包目录捕获的信息。图 7 显示,整个示例队列现已与 SamplePackage 01 版本 v1.0.0 相关联:

Metrics displayed in the AWS IoT Device Management console showing package version association with AWS IoT things

图 7。亚马逊云科技 IoT Device Management 控制台中显示的指标显示了包版本与 亚马逊云科技 IoT 事物的关联

此外,我们现在可以探索一种场景,即我们需要将新的软件包版本部署到设备群的子集,并自动记录更新的软件包状态信息。例如,在您需要为物联网设备推出固件更新或安全补丁的情况下,这可能是必要的。

由于软件包目录功能已与 亚马逊云科技 IoT Device Management Job s 集成 ,因此您可以自动执行相关的软件包部署操作并远程执行这些操作。按照前面描述的流程,我们创建并发布了新的软件包版本 v2. 0.0。图 8 显示了一个新的自定义作业配置,用于根据所选的事物组 thing-group-1 将新创建的 SamplePackage01 版本 v2.0.0 部署 到选定的设备子集:

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

图 8。创建与 亚马逊云科技 IoT 设备管理软件包目录集成的新 亚马逊云科技 IoT 任务,将软件包版本部署到目标 亚马逊云科技 IoT 事物组

具体而言,您可以使用 作业与软件包目录服务集成 部分中提供的新选项来定义作业成功完成后要对包版本信息执行的更新。创建并完成任务后,更新的包版本关联信息将反映在发现控制台中,如图 9 所示:

AWS Console showing current version distribution and historical chart in Discovery console of Software Package Catalog

图 9。Discovery 控制台中的当前版本分布和历史图表

版本分发信息已通过预留的 亚马逊云科技 IoT Named Shadow 动态更新,除了前面描述的手动关联工作流程外,它还能够自动管理软件包版本数据,如图 10 所示:

Reserved named Shadow reporting an updated version information for samplePackage01 version v2.0.0 following successful completion of the AWS IoT Job

Reserved named Shadow reporting an updated version information for samplePackage01 version v2.0.0 following successful completion of the AWS IoT Job

图 10。成功完成 亚马逊云科技 IoT 任务后,名为 Shadow 的保留名为 Shadow 会报告 SamplePackage01 版本 v2.0.0 的更新版本信息

除了 亚马逊云科技 控制台外,您还可以 直接使用 亚马逊云科技 IoT API 亚马逊云科技 CLI 来管理软件包目录中的软件包和软件包版本。

结论

亚马逊云科技 IoT 设备管理软件包目录现在可用于连接到 亚马逊云科技 IoT Core 的设备。这项新功能可以更轻松地以集成的方式集中维护软件包及其版本的清单。

您可以将包版本与单个事物和 亚马逊云科技 IoT 动态事物组关联起来,并使用内部软件部署流程或 A WS IoT Device Management Jobs 进行部署 。注册 A WS 账户 并参考 技术文档 以立即开始使用。

作者简介

Ryan Dsouza Headshot

Ryan Dsouza

Ryan Dsouza 是 A WS 物联网的首席解决方案架构师。Ryan 总部位于纽约市,利用 亚马逊云科技 能力的广度和深度,帮助客户设计、开发和运营更安全、更具扩展性和创新的解决方案,以实现可衡量的业务成果。Ryan 在不同行业的数字平台、智能制造、能源管理、建筑和工业自动化以及 OT/IIoT 安全方面拥有超过 25 年的经验。在加入 亚马逊云科技 之前,Ryan 曾在埃森哲、西门子、通用电气、IBM 和 AECOM 工作,为客户的数字化转型计划提供服务。

Maxim Chernyshev Headshot

马克西姆·切尔尼雪夫

Maxim Chernyshev 是一名高级解决方案架构师,在 亚马逊云科技 为矿业、能源和工业客户工作。Maxim 总部位于西澳大利亚州珀斯,使用各种适用的 亚马逊云科技 服务和功能帮助客户设计复杂和新颖问题的解决方案。Maxim 热衷于工业物联网、可扩展的 IT/OT 融合和网络安全。