问:什么是 AWS IoT Core?

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

问:AWS IoT Core 提供哪些功能?

实现设备与 AWS 云之间的连接。首先,借助 AWS IoT Core,您能以安全、低延迟和低开销的方式与互联设备通信。通信可扩展到您所需的任意数量的设备。AWS IoT Core 支持标准通信协议(目前支持 HTTP、MQTT 和 WebSockets)。可使用 TLS 来确保通信安全。

实现设备与 AWS 云之间的连接。 首先,借助 AWS IoT Core,您能以安全、低延迟和低开销的方式与互联设备通信。通信可扩展到您所需的任意数量的设备。AWS IoT Core 支持标准通信协议(目前支持 HTTP、MQTT 和 WebSockets)。可使用 TLS 来确保通信安全。

处理互联设备发出的数据。其次,借助 AWS IoT Core,您可以持续接收、筛选、转换和路由从互联设备流式传输的数据。您可以根据这些数据执行操作,并进行路由以做进一步处理和分析。

与互联设备交互的应用程序。最后,AWS IoT Core 可以加快 IoT 应用程序的开发。它用作在云中和移动设备上运行的应用程序的易于使用的接口,可用于访问互联设备发出的数据,并将数据和命令发回设备。

问:AWS IoT Core 的工作原理是什么?

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

此外,AWS IoT Core 还包含规则引擎,可对互联设备发送的数据进行持续处理。您可以配置规则以筛选和转换数据。此外,您还可以配置规则来将数据路由到其他 AWS 产品(如 DynamoDB、Kinesis、Lambda、SNS、SQS、CloudWatch 和内置 Kibana 集成的 Elasticsearch Service)及非 AWS 产品,通过 Lambda 做进一步的处理、存储或分析。

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

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

问:什么是 2lemetry 以及它与 AWS IoT 有何关联?

AWS 在 2015 年收购了 2lemetry,并获得了他们为 AWS IoT Core 提供 MQTT Message Broker 和 Rules Engine 等基本元素的能力。

问:哪些 AWS 区域提供 AWS IoT Core 服务?

请参阅 AWS 区域表,了解 AWS IoT Core 的当前区域列表。

不管您身处哪个地理位置,只要您能够访问上述 AWS 区域之一,即可使用 AWS IoT Core。

问:如何开始使用 AWS IoT Core?

请使用 AWS IoT 控制台或参阅开发人员指南的快速入门部分,以在数分钟内开始试用 AWS IoT Core。

另请参阅由我们合作伙伴提供、AWS 给予支持的初学者工具包

有关更多信息,请参阅 AWS IoT Core 文档

问:AWS IoT 控制台支持哪些语言?

​AWS IoT 控制台支持英语、法语、日语、韩语、简体中文、德语、葡萄牙语、西班牙语、意大利语和繁体中文。

问:如何切换控制台语言?

单击控制台左下角的语言即可选择语言。不同 AWS 产品的控制台将始终选用一种语言。

问:访问 AWS IoT Core 的途径有哪些?

您可以使用 AWS 管理控制台AWS 开发工具包、AWS CLI 和 AWS IoT Core API 访问。互联设备可以使用 AWS IoT 设备开发工具包,以简化与 AWS IoT Core 设备的通信。

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

问:AWS IoT Core 支持哪些通信和身份验证协议?

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

发送到 AWS IoT Core 的 HTTPS 和 WebSockets 请求使用 AWS IAM 或 AWS Cognito 进行身份验证,这两者均支持 AWS SigV4 身份验证。如果您使用的是 AWS SDK 或 AWS CLI,系统会在后台为您处理 SigV4 身份验证。HTTPS 请求还可以使用 X.509 证书进行身份验证。发送到 AWS IoT Core 的 MQTT 消息使用 X.509 证书进行身份验证。

借助 AWS IoT Core,您可以使用 AWS IoT Core 生成的证书以及由您的首选证书颁发机构 (CA) 签署的证书。

问:未直接连接互联网的设备能访问 AWS IoT Core 吗?

可以通过实体插座连接。连接私有 IP 网络的设备和使用非 IP 射频协议的设备(如 ZigBee 或蓝牙 LE)只要有实体插座作为其与 AWS IoT Core 之间的中介,就可以访问 AWS IoT Core 并进行安全地通信。

问:应用程序应如何访问 AWS IoT Core?

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

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

通常,配套应用程序使用最终用户身份(由您自己的身份存储或 Facebook、Login with Amazon 等第三方身份提供商管理)进行身份验证。对于配套应用程序,可以使用 Amazon Cognito(与多个身份提供商集成)。可以授权 Cognito 身份以访问 AWS IoT Core,且可将其访问范围限制为与其相关的资源。例如,作为一家互联洗衣机制造商,您可以授权消费者访问属于其各自洗衣机的 AWS IoT Core 信息。

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

问:我能否获取从我的账户发起的 AWS IoT Core API 调用的历史记录,用于安全分析和操作故障排除?

可以。要获取从您的账户发起的 AWS IoT Core API 调用的历史记录,您只需在 AWS 管理控制台中打开 CloudTrail 即可。

问:如何切换控制台语言?

单击控制台左下角的语言即可选择语言。不同 AWS 产品的控制台将始终选用一种语言。

问:如何发送反馈?

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

问:什么是设备网关?

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

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

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

问:什么是 MQTT?

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

问:什么是规则引擎?

规则引擎可对来自连接到 AWS IoT Core 的设备的入站数据进行连续处理。您可以使用直观的类 SQL 语法在规则引擎中配置规则,以自动过滤和转换入站数据。您可以进一步配置规则,将数据从 AWS IoT Core 路由到多个其他 AWS 产品及您自己的第三方服务。

下面给出了少量规则用例:

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

问:如何定义和触发规则?

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

SQL 语句:指定要应用规则的发布/订阅主题、要执行的数据转换(如有的话)以及执行规则的条件。该规则应用到在指定主题上发布的每一条消息。

操作列表:定义规则执行时(即:当传入消息匹配规则中指定的条件时)要采取的操作。

规则定义使用基于 JSON 的架构。您可以直接编辑 JSON,或使用 AWS 管理控制台中的规则编辑器。

下面是一个规则示例,当温度高于 50 时,它将来自传感器的温度数据保存到 DynamoDB 中:

{

    "sql": "SELECT * from 'iot/tempSensors/#' WHERE temp > 50",

    "description": "Rule to save sensor data when temperature is about 50",

    "actions": [

     {

            "dynamoDB": {

            "tableName": "HighTempTable",

            "roleArn": "arn:AWS:iam::your-AWS-account-id:role/dynamoPut",

            "hashKeyField": "key",

            "hashKeyValue": "${topic(3)}",

            "rangeKeyField": "timestamp",

            "rangeKeyValue": "${timestamp()}"

            }

        }

    )

}

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

问:哪里可以了解有关规则的更多信息?

有关规则的更多信息,请参阅 Core 规则文档

问:什么是注册表?它有什么用?

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

问:什么是 Thing Type?

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

问:什么是简化的权限管理?

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

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

问:什么是设备影子?

设备影子使得云和移动应用程序能够轻松地与 AWS IoT Core 中注册的互联设备交互。AWS IoT Core 中的设备影子包含互联设备的属性。您可以定义适合您用例的任意属性集。例如,对于智能灯泡,您可以定义“on-or-off”、“color”和“brightness”等作为属性。然后由互联设备报告这些属性的实际值(存储在设备影子中)。应用程序可使用 AWS IoT Core 提供的 RESTful API 轻松地获取和更新这些属性。AWS IoT Core 和设备 SDK 负责在互联设备与其在 AWS IoT Core 中的设备影子间同步属性值。

问:我必须使用注册表和设备影子吗?

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

问:设备及其在 AWS IoT Core 中的设备影子的生命周期是怎样的?

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

问:哪里可以了解有关注册表和设备影子的更多信息?

有关注册表的更多信息,请查阅注册表文档。有关设备影子的更多信息,请查阅设备影子文档

问:我能在 AWS IoT Core 中配置精细的授权操作吗?

可以。与其他 AWS 产品类似,在 AWS IoT Core 中,您可以精细控制授权每个身份调用的 API 操作集。此外,您还能精细控制身份可发布或订阅的发布/订阅主题,以及身份可访问的注册表中的设备和设备影子。

问:哪里可以了解有关 AWS IoT Core 中安全性和访问控制的更多信息?

有关更多信息,请参阅 AWS IoT Core 安全性和身份

问:什么是证书的即时注册?

设备证书的即时注册 (JITR) 通过简化使用 AWS IoT Core 注册设备的流程,在 2016 年 4 月发布的“使用自己的证书”功能的基础上进行了扩展。在支持 JITR 之前,设备注册流程需要两个步骤:第一步,将证书颁发机构 (CA) 证书注册到 AWS IoT Core;第二步,单独注册 CA 签发的设备证书。现在,借助 JITR,您可以在设备首次连接至 AWS IoT Core 时,通过自动注册设备证书来完成第二步。这样可节约注册设备证书所用的时间,且可使设备在制造过程中保持离线状态。要进一步自动执行 IoT 设备预置,您可以使用 Lambda 操作创建一个 AWS IoT Core 规则,激活证书并添加策略。有关更多信息,请访问 AWS 上的物联网博客或开发人员文档

问:什么是 AWS IoT 设备 SDK?

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

AWS IoT 设备 SDK 是开源项目,免费提供。有关更多信息,请访问我们的设备 SDK 页面。

问:AWS IoT 设备 SDK 支持哪些编程语言和硬件平台?

目前,AWS 提供了适用于 C、Node.js 语言及 Arduino Yún 平台的 AWS IoT 设备 SDK。

此外,有多个硬件制造商与 AWS 建立了合作伙伴关系,以使 AWS IoT 设备 SDK 能够在其各自的平台上运行。有关这些硬件平台的更多信息,请访问我们的入门页面

最后,AWS IoT 设备 SDK 是开源的。您可以将它们移植到您选择的语言和硬件平台(如果它们尚未获得支持的话)。 

问:我该使用 AWS IoT 设备 SDK 还是 AWS SDK?

AWS IoT 设备 SDK 是对 AWS SDK 的补充。一方面,IoT 项目通常涉及在微控制器及其他资源有限设备上运行的代码。另一方面,IoT 项目还常常包含在云和移动设备上运行的与微控制器/资源有限设备交互的应用程序。AWS IoT 设备 SDK 旨在于微控制器/资源有限设备上使用,而 AWS SDK 旨在用于云和移动应用程序。

有关 AWS IoT 设备 SDK 的更多信息,请参阅 AWS 设备 SDK

问:AWS IoT Core 是否包含在 AWS 免费套餐中?

可以。请访问我们的定价页面,了解更多信息。

问:AWS IoT Core 是如何收费的?

请访问我们的定价页面了解更多信息。

发现更多 AWS IoT Core 资源

访问资源页面
准备好开始使用了吗?
注册
还有更多问题?
联系我们