跳至主要内容

Amazon IoT Core 常见问题

简介

全部打开

    Amazon IoT Core 是一种托管的云平台,让互联设备可以轻松安全地与云应用程序和其他设备交互。 Amazon IoT Core 可以支持数十亿台设备和数万亿条消息,并且可以处理这些消息并将其安全可靠地路由至亚马逊云科技端点和其他设备。借助 Amazon IoT Core,您的应用程序可以随时跟踪您的所有设备并与其通信,即使这些设备未处于连接状态也不例外。

    Amazon IoT 使用户能够轻松使用 Amazon Web Services Services(如 Amazon Kinesis、Amazon S3、Amazon DynamoDB、Amazon CloudWatch 和 Amazon CloudTrail)来构建 IoT 应用程序,以便收集、处理和分析互联设备生成的数据并对其执行操作,且无需管理任何基础设施。

    设备与亚马逊网络服务云之间的连接。首先,借助 Amazon IoT Core,您可以安全地与互联设备通信,同时实现低延迟和低开销。通信范围可以扩展到您所需的任意数量的设备。Amazon IoT 服务支持多种标准通信协议(目前支持 HTTP、MQTT 和 WebSockets)。它使用 TLS 来确保通信安全。

    • 设备与亚马逊网络服务云之间的连接。首先,借助 Amazon IoT Core,您可以安全地与互联设备通信,同时实现低延迟和低开销。通信范围可以扩展到您所需的任意数量的设备。Amazon IoT 服务支持多种标准通信协议(目前支持 HTTP、MQTT 和 WebSockets)。它使用 TLS 来确保通信安全。
    • 处理互联设备发出的数据。其次,借助 Amazon IoT Core,您可以持续提取、筛选、转换和路由从互联设备传出的数据。您可以根据这些数据采取操作并路由这些数据,以便进一步处理和分析。
    • 与互联设备的应用程序交互。最后,Amazon IoT 服务可以加快 IoT 应用程序的开发。它可以作为在云中和移动设备上运行的应用程序的易用接口,让您能够访问互联设备发出的数据,并将数据和命令发回设备。

    传感器、执行器、嵌入式设备、智能设备和可穿戴设备等互联设备通过 HTTPS、WebSockets 或安全 MQTT 连接到 Amazon IoT。Amazon IoT Core 内含设备网关,可以在互联设备与您的云和移动应用程序之间建立安全、低延迟、低开销的双向通信。

    此外,Amazon IoT 服务还包含规则引擎,可以持续处理互联设备发送的数据。您可以配置规则以便筛选和转换数据。您还可以配置规则以将数据路由到其他亚马逊云科技服务(如 DynamoDB、Kinesis、SNS、SQS 和 CloudWatch),以便做进一步处理、存储或分析。

    它还提供了一个设备注册表,供您注册和跟踪连接到 Amazon IoT Core 的设备或未来可能要连接的设备。Amazon IoT 服务中的设备影子让云和移动应用程序能够查询设备发送的数据,并通过简单的 REST API 向设备发送命令,同时将设备底层的通信交给 Amazon IoT Core 处理。影子可以向设备提供统一的接口(即使设备使用的 IoT 通信和安全协议可能与应用程序不兼容),从而加快应用程序的开发速度。此外,即使互联设备受到连接间歇中断、带宽、计算能力或电力的制约,影子也可以向设备提供始终可用的接口,加快应用程序的开发速度。

    与 Amazon IoT Core 之间的通信很安全。该服务要求其所有的客户端 (互联设备、服务器应用程序、移动应用程序或人类用户) 均使用强身份验证 (X.509 证书或 Amazon IAM 凭证)。所有通信均经过加密。 Amazon IoT 还提供了精细的授权,可以隔离和保护验证过身份的客户端之间的通信。

    与其他亚马逊网络服务类似,用户可以通过亚马逊云科技管理控制台访问亚马逊 IoT Core。应用程序可以借助面向多种编程语言的亚马逊云科技开发工具包轻松访问 Amazon IoT。 Amazon IoT Core 与 Amazon CloudWatch 集成,可以进一步简化 IoT 应用程序的开发和操作。

    为简化运行在互联设备上的代码开发,Amazon IoT Core 为 C、Node.js 和 Arduino Yún 平台提供了开源设备软件开发工具包。 此外,Amazon IoT Core 还与硬件制造商建立了合作伙伴关系,以使 Amazon IoT 设备软件开发工具包可在多种 IoT、嵌入式操作系统和微控制台平台上使用。

    请访问按地区划分的亚马逊网络服务服务

    只要您可以通过亚马逊云科技物联网服务访问其中一个亚马逊云服务区域,无论您身在何处,都可以使用亚马逊物联网核心。

访问 Amazon IoT Core

全部打开

    您可以使用亚马逊网络服务管理控制台亚马逊软件开发工具包和亚马逊物联网 API 来访问亚马逊物联网服务。互联设备可以使用 Amazon IoT 设备软件开发工具包,以简化与 Amazon IoT 服务的通信。

    Amazon IoT Core API 和命令主要分为控制层面操作和数据层面操作。控制层面操作让您能够执行配置安全性、注册设备、配置数据路由规则、设置日志记录等任务。数据层面操作让您能够以低延迟和高吞吐率的方式将互联设备的数据大规模传输到 Amazon IoT Core。

    对于控制层面的操作,Amazon IoT Core 支持 HTTPS。对于数据层面的操作,Amazon IoT Core 支持 HTTPS、WebSockets 和安全 MQTT(一种常用于 IoT 场景的协议)。

    发送到 Amazon IoT Core 的 HTTPS 和 WebSockets 请求使用 Amazon IAM 进行身份验证,这两者均支持 Amazon SigV4 身份验证。如果您使用的是亚马逊云科技开发工具包,系统会在后台为您处理 SigV4 身份验证。HTTPS 请求还可以使用 X.509 证书进行身份验证。发送到 Amazon IoT Core 的 MQTT 消息使用 X.509 证书进行身份验证。


    能,可以通过物理集线器进行访问。对于连接私有 IP 网络的设备和使用 ZigBee 或蓝牙 LE 等非 IP 射频协议的设备,只要有物理集线器作为其与 Amazon IoT Core 之间的中介,这些设备就可以访问 Amazon IoT Core 并进行安全通信。

    连接到 Amazon IoT Core 的应用程序主要分为两类:1. 配套应用,2. 服务器应用程序。配套应用程序是指通过云与互联设备交互的移动或客户端浏览器应用程序。能够使消费者远程解锁消费者居所中智能锁的移动应用程序就是配套应用程序的一个示例。服务器应用程序旨在同时监控和控制大量互联设备。在地图上实时绘制数千辆卡车的车队管理网站就是服务器应用程序的一个示例。

    Amazon IoT Core 使配套应用程序和服务器应用程序能够通过统一的 RESTful API 访问互联设备。此外,应用程序也可选择使用发布/订阅方式与互联设备直接通信。

    服务器应用程序(如运行在 Amazon EC2 上的地图应用程序)可使用 IAM 角色访问 Amazon IoT Core。

    要获取通过您账户发起的 Amazon GameLift API 调用的历史记录,您只需在亚马逊云科技管理控制台中打开 CloudTrail 即可。

管理控制台

全部打开

    • Amazon IoT Core 控制台具有新的视觉设计,改善了易用性和导航方式。
    • 用户可以更轻松地在相应的区域找到物体、类型、证书、策略和规则。
    • 新的控制面板现在提供账户级指标。
    • MQTT Web 客户端经过简化,可对 IoT 解决方案进行问题排查。
    • 添加了一个新向导,只需简单几步即可连接设备。
    • 物体详情现在包含生命周期事件和影子活动的实时馈送信息。

    要发送反馈,请单击控制台页脚栏中的“反馈”链接。

设备网关

全部打开

    设备网关构成了互联设备与云功能(如 Amazon IoT 规则引擎、设备影子以及其他亚马逊云科技和第三方服务)之间的通信骨干。

    设备网关支持发布/订阅消息收发模式,能够实现可扩展、低延迟和低开销的通信。它对于预计会有数十亿设备进行低延迟频繁通信的 IoT 场景尤为有用。发布/订阅模式是指:客户端在称作“主题”的逻辑通信通道上发布消息,然后订阅主题以接收消息。设备网关可以为发布者与订阅者之间的通信提供支持。传统上,组织要使用发布/订阅模式,就必须预置、操作、扩展和维护自己的服务器来作为设备网关。 Amazon IoT 服务提供了 Amazon IoT 设备网关,消除了这一障碍。

    该设备网关可根据您的使用情况自动扩展,不会给您带来任何运营开销。 亚马逊 IoT Core 支持与设备网关进行安全通信、亚马逊网络服务账户级别隔离以及亚马逊云科技账户内的细粒度授权。目前,该设备网关支持通过安全的 MQTT 和 WebSockets 进行发布和订阅,以及通过 HTTPS 进行发布。


    MQTT 是一种轻量级的发布/订阅协议,旨在最大限度地降低网络带宽和设备资源要求。此外,MQTT 还支持使用 TLS 进行安全通信。MQTT 常用于 IoT 使用案例。MQTT v3.1.1 是一种 OASIS 标准,Amazon IoT 设备网关支持大部分 MQTT 规范。

规则引擎

全部打开

    Amazon IoT Core 规则引擎可以连续处理来自连接到 Amazon IoT 服务的设备的入站数据。您可以使用直观的、类似于 SQL 的语法在规则引擎中配置规则,以便自动筛选和转换入站数据。您可以进一步配置规则,将数据从 Amazon IoT 服务路由到多项其他亚马逊云科技服务及您自己的第三方服务。
    下面给出了少量规则使用案例:

    • • 筛选和转换传入消息,并将其作为时间序列数据存储在 DynamoDB 中。
    • 当来自传感器的数据超出特定阈值时,通过 SNS 发送推送通知。
    • 将固件文件保存到 S3
    • 同时处理来自大量使用 Kinesis 的设备的消息
    • 以自动重新发布的形式向一组设备发送命令

    Amazon IoT Core 规则包含两大部分:

    • SQL 语句:指定要应用规则的发布/订阅主题、要执行的数据转换(如有)以及执行规则的条件。该规则会应用到在指定主题上发布的每一条消息。
    • 操作列表:定义规则执行时(即:当传入消息满足规则中指定的条件时)要采取的操作。

    规则定义使用基于 JSON 的 Schema。您可以直接编辑 JSON,或使用亚马逊云科技管理控制台中的规则编辑器。
    下面是一个规则示例,当温度高于 50 时,系统会将来自传感器的温度数据保存到 DynamoDB 中:

    本示例中的传感器在其位于“iot/tempSensors/”下的主题中发布消息。规则的第一行定义了一个用于查询“iot/tempSensors/#”主题的 SQL SELECT 语句。它包含一个 WHERE 子句,可提取消息负载中“temp”字段的值,并检查其是否满足“高于 50”的条件。如果满足条件,则将数据存储在指定的 DynamoDB 表中。本示例使用内置函数完成遍历消息负载和获取当前时间等任务。

设备注册表和设备影子

全部打开

    从少量关键任务型设备到大型设备队列,这些都属于 IoT 场景。Amazon IoT 设备注册表让您能够组织和跟踪这些设备。您可以在设备注册表中维护连接 Amazon IoT 的每个设备的逻辑句柄。设备注册表中的每个设备都能被唯一标识,且可拥有元数据,如型号、支持联系方式和与之关联的证书等。您可以根据元数据在设备注册表中搜索互联设备。

    物体类型通过定义同类设备的一般特征,帮助您高效管理设备目录。此外,与一种物体类型相关的每个物体目前拥有多达 50 个属性,其中包括 3 个可搜索属性。

    借助该功能,您可以通过使用引用注册表或 X.509 证书属性的变量来轻松管理大量设备的权限策略。“注册表”和“证书”属性与设备策略的集成具有以下优点:

    • 现在,您可以在设备权限策略中引用“设备注册表”属性。通过引用设备注册表中定义的设备属性,您的策略可以反映设备注册表中发生的任何更改。例如,通过引用名为“building-address”的物体属性作为策略中的变量,设备将在移动建筑时自动继承一组新的权限。
    • 您可以在多个设备之间共享一个通用策略。通用策略可以在相同类别的设备之间共享,而不是为每个设备创建唯一策略。例如,引用“serial-number”作为变量的策略可以添加到同一型号的所有设备。当序列号相同的设备相互连接时,其序列号会自动替换策略变量。

    设备影子使得云和移动应用程序能够轻松地与 Amazon IoT Core 中注册的互联设备交互。Amazon IoT Core 中的设备影子包含互联设备的属性。您可以定义适合您使用案例的任意属性集。例如,对于智能灯泡,您可以定义“开或关”、“颜色”和“量度”等作为属性。然后由互联设备报告这些属性的实际值(存储在设备影子中)。应用程序可使用 Amazon IoT 服务提供的 RESTful API 轻松地获取和更新这些属性。Amazon IoT 服务和 Amazon IoT Core 设备软件开发工具包负责在互联设备与其在 Amazon IoT Core 中的影子间同步属性值。

    您可以让应用程序使用 Amazon IoT Core 中的设备网关和/或规则引擎直接与互联设备通信。但我们建议您使用设备注册表和设备影子,因为它们提供了更丰富和更结构化的开发和管理体验,让您能够将精力放在要为客户创造的独特价值上,而不是纠缠于互联设备与云之间的底层通信和同步上。

     

    • 您可以在注册表中注册设备(如智能灯泡)。
    • 通过编程使互联设备将其一组属性值或状态(“我亮着呢,我的颜色是红色”)发布到 Amazon IoT Core 服务。
    • 最新报告的状态存储在该设备在 Amazon IoT Core 中的影子内。
    • 应用程序(如控制智能灯泡的移动应用程序)使用 RESTful API 向 Amazon IoT Core 查询智能灯泡的最新报告状态,免除了与智能灯泡直接通信的麻烦。
    • 当用户需要更改状态(如熄灭处于点亮状态的智能灯泡)时,应用程序使用 RESTful API 请求更新,即:在 Amazon IoT Core 中为该设备设置“所需”的状态。Amazon IoT Core 负责将所需的状态同步到设备。
    • 当互联设备将其状态更新为所需状态时,应用程序会收到通知。

安全性与访问控制

全部打开

    可以。与其他亚马逊云科技服务类似,在 Amazon IoT Core 中,您可以精细控制每种身份有权调用的 API 操作集。此外,您还能精细控制身份可发布或订阅的发布/订阅主题,以及身份可访问的设备注册表中的设备和影子。

Amazon IoT 设备开发工具包

全部打开

    Amazon IoT 设备软件开发工具包能够简化和加快运行在互联设备(微控制器、传感器、执行器、智能设备、可穿戴设备等)上的代码的部署。首先,设备可以借助该设备软件开发工具包优化内存、功耗和网络带宽占用。同时,设备软件开发工具包可通过内置的 TLS、WebSockets 和 MQTT 支持实现高度安全、低延迟和低开销的通信。此外,设备软件开发工具包还支持更高级别的抽象 (如同步设备与其在 Amazon IoT 服务中的影子的状态),以加快 IoT 应用程序的部署。

    Amazon IoT 设备软件开发工具包是开源项目,免费提供。有关更多信息,请访问我们的开发人员资源页面。


    目前,亚马逊云科技提供了适用于 C、Node.js 语言及 Arduino Yún 平台的 Amazon IoT 设备软件开发工具包。

    Amazon IoT 设备软件开发工具包是开源的。您可以将它们移植到您选择的语言和硬件平台 (如果它们不受支持的话)。

    Amazon IoT 设备软件开发工具包是对 亚马逊云科技开发工具包的补充。IoT 项目通常涉及在微控制器及其他资源受限的设备上运行的代码。不过,IoT 项目还常常包含在云和移动设备上运行的与微控制器/资源受限的设备交互的应用程序。 Amazon IoT 设备软件开发工具包旨在用于微控制器/资源受限的设备,而亚马逊云科技开发工具包旨在用于云和移动应用程序。