AWS IoT
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

什么是 AWS IoT?

AWS IoT 可在连接了 Internet 的设备(如传感器、致动器、嵌入式微控制器或智能设备)与 AWS 云之间提供安全的双向通信。这样,您变能从多台设备收集遥测数据,然后存储和分析数据。您也可以创建令用户能够通过手机或平板电脑控制这些设备的应用程序。

AWS IoT 组件

AWS IoT 包括以下组件:

设备网关

使设备能够安全高效地与 AWS IoT 进行通信。

消息代理

提供安全机制以供设备和 AWS IoT 应用程序用于相互发布和接收消息。进行发布和订阅时,您可以直接使用 MQTT 协议,也可以通过 WebSocket 使用 MQTT 协议。您可以使用 HTTP REST 接口进行发布。有关更多信息,请参阅 AWS IoT 的消息代理

规则引擎

提供消息处理及与其他 AWS 服务进行集成的功能。您可以使用基于 SQL 的语言选择消息负载中的数据,然后处理数据并将数据发送到其他服务,如 Amazon S3、Amazon DynamoDB 和 AWS Lambda。您还可以使用消息代理面向其他订阅者重新发布消息。有关更多信息,请参阅 AWS IoT 规则

安全和身份服务

在 AWS 云中共担安全责任。为了安全地将数据发送到消息代理,您的设备必须确保自身凭证的安全。消息代理和规则引擎使用 AWS 安全功能将数据安全发送到设备或其他 AWS 服务。有关更多信息,请参阅 身份验证

注册表

整理与 AWS 云中的每台设备关联的资源。您可以注册自己的设备并将每台设备与最多三个自定义属性关联。您还可以将每台设备与相应的证书和 MQTT 客户端 ID 关联,以提高对设备进行管理和故障排除的能力。有关更多信息,请参阅 使用 AWS IoT 管理设备

组注册表

通过将设备按类别分成不同的组,可以使用组来同时管理多台设备。组中还可以包含组 — 您可以构建组的层次结构。您在父组上执行的任何操作都将应用于其子组以及该组及其子组中的所有设备。分配到某个组的权限将应用于该组及其子组中的所有设备。有关更多信息,请参阅 使用 AWS IoT 管理设备

Device Shadow

一种 JSON 文档,用于存储和检索设备的当前状态信息。

Device Shadow 服务

在 AWS 云中提供您的设备的永久性表示形式。您可以向设备的影子发布更新后的状态信息,您的设备可在建立连接时实现状态同步。您的设备还可以将有关其当前状态的信息发布到影子,以供应用程序或其他设备使用。有关更多信息,请参阅 适用于 AWS IoT 的 Device Shadow 服务

设备预配置服务

让您可使用描述设备所需资源的模板来预置设备:事物、证书以及一个或多个策略。事物是注册表中的一个条目,其中包含描述设备的属性。设备使用证书通过 AWS IoT 进行身份验证。策略确定设备在 AWS IoT 中可执行的操作。

模板包含可用字典中的值替换的变量 (映射)。您可以使用同一个模板来预配置多个设备,只需在字典中为模板变量传递不同的值。有关更多信息,请参阅 设备预配置

自定义身份验证服务

您可以定义自定义授权方,从而通过自定义的身份验证服务和 Lambda 函数来管理自己的身份验证和授权策略。自定义授权方使得 AWS IoT 可以使用持有者令牌身份验证和授权策略,对您的设备进行身份验证和授权操作。

自定义授权方可以实施各种身份验证策略 (例如,JSON Web Token 验证、OAuth 提供程序调用等等),并且必须返回由设备网关授权 MQTT 操作所使用的策略文档。有关更多信息,请参阅 自定义身份验证

Jobs 服务

允许您定义一组远程操作,这些操作将被发送到一个或多个连接到 AWS IoT 的设备并在这些设备上执行。例如,您可以定义一个作业,该作业指示一组设备下载并安装应用程序或固件更新、重启、轮换证书或执行远程故障排除操作。

要创建作业,您需要指定要执行的远程操作的说明,以及应该执行这些操作的目标列表。目标可以是单个设备和/或设备组。有关更多信息,请参阅 作业

有关 AWS IoT 限制的信息,请参阅 AWS IoT 限制

如何开始使用 AWS IoT

访问 AWS IoT

AWS IoT 提供以下接口以创建设备并与之交互:

  • AWS Command Line Interface (AWS CLI)— 在 Windows、macOS 和 Linux 上运行 AWS IoT 的命令。您可以使用这些命令创建并管理事物、证书、规则和策略。要开始使用,请参阅 AWS Command Line Interface 用户指南。有关 AWS IoT 命令的更多信息,请访问 AWS CLI Command Reference 中的 iot

  • AWS IoT API — 使用 HTTP 或 HTTPS 请求构建您的 IoT 应用程序。您可以使用这些 API 操作以编程方式创建和管理事物、证书、规则及策略。有关适用于 AWS IoT 的 API 操作的更多信息,请参阅 AWS IoT API 参考操作中的操作

  • AWS 开发工具包 — 使用语言特定 API 构建您的 IoT 应用程序。这些软件开发工具包中封装了 HTTP/HTTPS API,并且您可以用任何受支持的语言进行编程。有关更多信息,请参阅AWS开发工具包和工具

  • AWS IoT 设备软件开发工具包 — 构建在设备上运行的应用程序,以便与 AWS IoT 收发消息。有关更多信息,请参阅 AWS IoT 开发工具包

AWS IoT 可直接与以下 AWS 产品集成:

  • Amazon Simple Storage Service — 在 AWS 云中提供可扩展存储。有关更多信息,请参阅 Amazon S3

  • Amazon DynamoDB — 提供托管 NoSQL 数据库。有关更多信息,请参阅 Amazon DynamoDB

  • Amazon Kinesis — 允许实时进行大规模的流数据处理。有关更多信息,请参阅 Amazon Kinesis

  • AWS Lambda — 在 Amazon EC2 的虚拟服务器上运行代码以响应事件。有关更多信息,请参阅 AWS Lambda

  • Amazon Simple Notification Service — 发送或接收通知。有关更多信息,请参阅 Amazon SNS

  • Amazon Simple Queue Service — 将数据存储在队列中以供应用程序检索。有关更多信息,请参阅 Amazon SQS