使用 AWS IoT 设备管理作业安排远程操作 官方博客 物联网

使用 AWS IoT 设备管理作业调度远程操作

关键要点

在本文中,我们将介绍如何使用 AWS IoT 设备管理作业功能,远程管理 IoT 设备的操作并调度必要的更新。您将学习如何创建调度作业,控制作业的启动和结束时间,以及在特定时间窗口内执行关键任务,以减少对正常使用的干扰。

简介

一旦物联网 (IoT) 设备在现场部署,现场干预可能会变得具有挑战性、成本昂贵,并且因技术和后勤限制可能无法实现。对 IoT 设备软件进行远程更新的能力是提升 IoT 应用程序寿命和操作韧性的一个重要因素,它提供最新功能、解决bug问题并减少安全风险。AWS IoT 设备管理 是一项完全托管的服务,帮助您按规模注册、组织、监控和远程管理 IoT 设备。开发人员利用 AWS IoT 设备管理作业 在连接到 AWS IoT Core 的设备上执行远程操作例如,固件更新、设备重启、出厂重置等。

“作业”是定义在云中的一组操作,发送并在一个或多个设备上运行,而作业执行是针对目标设备进行的远程操作的实例。例如,开发人员可以定义一个单独的作业,在1000个设备上执行“空中”OTA更新,这样就会执行1000个作业执行以更新每个单独设备。在许多情况下,开发人员需要一种机制来控制作业活动和运行的时间窗口,例如可配置的开始时间和结束时间参数,并能够在达到结束时间时取消作业执行,以停止推出尚未开始的剩余执行。这种需求的用例示例包括:

IoT 设备在工厂中执行敏感操作,例如控制工业设备,需按计划进行更新。IoT 设备提供消费服务,例如家庭互联网连接,只应在闲置期间进行升级。IoT 设备在严格的可用性服务等级协议 (SLAs) 下运行,远程操作必须在定义的时间窗口内执行,以减少操作干扰。

本文将为开发人员提供使用 AWS IoT 设备管理作业调度功能 的指导。

元数据

学习级别 300使用的服务 AWS IoT 设备管理 AWS IoT Core AWS IoT 设备客户端。

前提条件

要进行本文中的操作,您需要:

拥有一个 AWS 账户 和创建 IoT 事物的权限,以及使用 AWS IoT 设备管理功能的权限。访问 AWS IoT 设备客户端,以使用其 作业功能 作为在模拟 IoT 设备上运行的开源软件。在生产环境中,您可以继续使用现有的设备设置。拥有一个可以与操作系统命令行接口互动的应用程序例如,Mac OS 的 Terminal 或 Windows 的 PowerShell。安装了 AWS 命令行接口 (CLI)。有关安装和配置 AWS CLI 的说明,请查阅 AWS CLI 文档。拥有一个 AWS 身份和访问管理 (IAM) 用户,具有通过 CLI 创建 AWS 资源的凭证。

调度 AWS IoT 作业发布 操作指南

步骤 1:创建 IoT 事物并配置 AWS IoT 设备客户端

要开始创建 IoT 事物并设置 AWS IoT 设备客户端,请按照 第 1 部分、第 2 部分 和 第 3 部分 的 入门研讨会,将您的 IoT 事物命名为 demoDevice。完成这些步骤后,您应该已经启用并运行具有作业功能的 AWS IoT 设备客户端,并创建了具有正确策略的 IoT 事物。

步骤 2:使用 AWS 托管模板创建 AWS IoT 作业

我们将创建一个作业,在指定的开始时间重启设备,使用 AWS 托管模板 AWSReboot。

在作业的调度配置中,您可以指定开始时间、结束时间以及在作业达到选定结束时间后所有作业执行的结束行为。作为结束行为,您可以指定在达到结束时间时应该如何处理剩余的作业执行,包括重试尝试和排队作业。开始时间、结束时间和结束行为的要求可以在 此处 查找。

请注意,开始时间和结束时间必须以协调世界时间 (UTC) 字符串的形式传递到 CLI 命令中。此外,您需要确保开始时间计划在当前时间的至少三十分钟之后。

创建作业的步骤如下,您可以使用 AWS CLI,执行以下命令:

创建所需的环境变量:

bashexport ACCOUNTID=lt替换为您的账号 IDgtexport THINGNAME=lt替换为您的事物名称gtexport REGION=lt替换为您的区域gtexport JOBID=lt替换为您的作业 IDgtexport STARTTIME=lt替换为您希望的开始时间gt

运行以下命令以创建 IoT 作业:

bashaws iot createjob targets arnawsiot{REGION}{ACCOUNTID}thing/{THINGNAME} jobid {JOBID} jobtemplatearn arnawsiot{REGION}jobtemplate/AWSReboot10 documentparameters pathToHandler=/etc/awsiotdeviceclient/jobs schedulingconfig startTime={STARTTIME}

验证 AWS CLI 输出,应该如下所示:

json{ jobArn arnawsiot{REGION}{ACCOUNTID}job/rebootscheduledjob jobId {JOBID} description A managed job template for rebooting the device }

步骤 3:在 AWS IoT 控制台中验证调度的作业创建

验证调度的作业创建步骤如下:

在 AWS IoT 控制台 的左侧菜单中,选择 Managegt Remote actionsgt Jobs,确保您已经创建了作业。

您应该检查“作业状态”为 Scheduled,并且预计开始时间正确。AWS 管理控制台中显示的时区是您当前的系统时区。

免费加速器官方正版下载一旦到达开始时间,您将看到作业状态变为 IN PROGRESS。

步骤 4:检查 AWS IoT 设备客户端日志以获取作业执行反馈

一旦到达开始时间,下一步就是查看 AWS IoT 设备客户端的日志,以确认作业是否成功执行。日志的标准位置在 /var/log/awsiotdeviceclient/awsiotdeviceclientlog。如果您修改了日志位置配置,请使用您的位置。

使用 AWS IoT 设备管理作业安排远程操作 官方博客  物联网

对于成功的作业执行,日志应与以下示例相似。

步骤 5:清理

为了避免额外费用,您应该清理所用的资源:

请按照 入门研讨会 中的 清理步骤 删除您在步骤 1 中创建的资源。

您应该删除创建的 IoT 作业。您可以使用以下 AWS CLI 命令来删除作业:

bashaws iot deletejob jobid {JOBID}

结论

一旦 IoT 设备投入使用,您可以利用 AWS IoT 设备管理作业功能远程管理设备的操作并调度关键更新。执行此类操作可以限制在预定义的时间窗口内进行,以减少正常使用期间的干扰,或遵守客户协议中的停机 SLA 承诺。在本文中,您已经学习了如何通过云调度 AWS IoT 作业执行,利用作业调度配置和 AWS IoT 设备客户端,而不需修改任何设备的行为。

关于作者

Alina Dima 是 AWS IoT 全球倡导团队的高级开发者倡导者,工作于亚马逊网络服务。她热衷于帮助开发者加速他们在 IoT 生态系统中的旅程,并与 IoT 社区合作,构建更好的产品并快速推进,从原型到大规模生产。Alina 在电信、制造、汽车、零售和光伏等多个行业工作,有近 20 年的软件工程、技术交付经理和架构师经验,设计和构建了多个高可扩展性、操作就绪的 IoT 解决方案,目前有数百万台设备在生产中运行。

Chelsea Pan 是亚马逊网络服务的高级产品经理,常驻西雅图。她负责 AWS IoT 设备管理服务的产品策略、路线图规划、业务分析与洞察、客户参与以及其他产品管理领域。Chelsea 曾在其职业生涯中领导了多款快速增长的安全产品的发布。

标签 AWS IoT、AWS IoT 博客、AWS IoT Core、AWS IoT 设备管理

使用 Amazon Comprehend 创建的自定义元数据通过 Amazon Kendra 智能处

使用 Amazon Comprehend 创建的自定义元数据通过 Amazon Kendra 智能处

利用 Amazon Comprehend 创建的自定义元数据智能处理保险索赔关键要点保险公司面临日益增长的索赔处理需求与复杂性。Amazon Comprehend 和 Amazon Kendra 可以通过自定义元数据结合使用,提升保险索赔的处理效率。此解决方案通过自定义分类和实体识别,帮助组织更好地...

在使用 AWS Lambda 处理 Apache Kafka 时的扩展改进 计算博客

在使用 AWS Lambda 处理 Apache Kafka 时的扩展改进 计算博客

使用 AWS Lambda 处理 Apache Kafka 的扩展改善主要要点AWS Lambda 正在改善其在处理 Apache Kafka 事件源时的自动扩展行为。Lambda 增加了预设初始消费者的数量,提升消费者的扩展速度,并防止消费者过快缩减。此次改进不需要额外采取任何行动,也不会产生额外...

订阅邮箱