

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 如何 AWS IoT 运作
<a name="aws-iot-how-it-works"></a>

 AWS IoT 提供云服务和设备支持，可用于实施物联网解决方案。 AWS 提供了许多云服务来支持基于 IoT 的应用程序。因此，为了帮助您了解从哪里开始，本部分提供了基本概念图表和定义，向您介绍物联网世界。

## IoT 世界
<a name="iot-universe"></a>

一般来说，物联网（IoT）由下图所示的关键组成部分组成。

![\[IoT 世界\]](http://docs.aws.amazon.com/zh_cn/iot/latest/developerguide/images/iot-universe.png)


### 应用程序
<a name="iot-universe-apps"></a>

 应用程序让最终用户可以访问物联网设备以及与这些设备相连的云服务所提供的特征。

### 云服务
<a name="iot-universe-cloud"></a>

云服务是连接到互联网的分布式大规模数据存储和处理服务。例子包括：
+ IoT 连接和管理服务 

  *AWS IoT 是 IoT 连接和管理服务的一个示例*。
+ 计算服务，例如 Amazon 弹性计算云和 AWS Lambda
+ 数据库服务，例如 Amazon DynamoDB

### 通信
<a name="iot-universe-comms"></a>

 设备通过使用各种技术和协议与云服务进行通信。例子包括：
+ Wi-Fi/宽带互联网
+ 宽带蜂窝数据
+ 窄带蜂窝数据
+ 远程广域网 (LoRaWAN)
+ 专有的射频通信

### Devices
<a name="iot-universe-devices"></a>

设备是管理接口和通信的一种硬件。设备通常位于其监控和控制的真实接口附近。设备可以包括计算和存储资源，例如微控制器、CPU、内存。例子包括：
+ Raspberry Pi
+ Arduino
+ 语音接口助手
+ LoRa广域网和设备
+ Amazon Sidewalk 设备
+ 自定义物联网设备

### 接口
<a name="iot-universe-interfaces"></a>

 接口是将设备连接到物理世界的组件。
+ 用户界面

  允许设备和用户相互通信的组件。
  + 输入接口

    使用户能够与设备通信

    示例：键盘、按钮
  + 输出接口

    使设备能够与用户通信

    示例：字母数字显示、图形显示、指示灯、闹铃
+ 传感器

  以设备理解的方式测量或感知外部世界中的某些内容的输入组件。例子包括：
  + 温度传感器（将温度转换为模拟或数字信号）
  + 湿度传感器（将相对湿度转换为模拟数字信号）
  + 模拟到数字转换器（将模拟电压转换为数值）
  + 超声波距离测量装置（将距离转换为数值）
  + 光学传感器（将光度转换为数值）
  + 相机（将图像数据转换为数字数据）
+ 执行器

  设备可用于控制外部世界中的某些内容的输出组件。例子包括：
  + 步进电机（将电信号转换为移动）
  + 继电器（控制高电压和电流）

## AWS IoT 服务概述
<a name="aws-iot-components"></a>

在物联网领域， AWS IoT 提供支持与世界交互的设备以及它们之间传输的数据的服务 AWS IoT。 AWS IoT 由本插图中显示的支持您的 IoT 解决方案的服务组成。

![\[AWS IoT 建筑\]](http://docs.aws.amazon.com/zh_cn/iot/latest/developerguide/images/architecture-diagram.png)


### AWS IoT 设备软件
<a name="aws-iot-components-device"></a>

AWS IoT 提供此软件来支持您的物联网设备。

**AWS IoT 设备 SDKs**  
[AWS IoT 设备和移动](iot-sdks.md)设备 SDKs可帮助您高效地将设备连接到 AWS IoT. AWS IoT 设备和移动设备 SDKs 包括开源库、带有示例的开发者指南和移植指南，因此您可以在自己选择的硬件平台上构建创新的物联网产品或解决方案。

**AWS IoT Device Tester**  
[AWS IoT Device Tester](https://docs.aws.amazon.com//freertos/latest/userguide/device-tester-for-freertos-ug.html)适用于 FreeRTOS AWS IoT Greengrass ，是一款用于微控制器的测试自动化工具。 AWS IoT Device Tester 测试您的设备以确定它是否会运行 FreeRTOS AWS IoT Greengrass 或与服务互操作。 AWS IoT 

**AWS IoT ExpressLink**  
AWS IoT ExpressLink 为[AWS 合作伙伴](https://aws.amazon.com/iot-expresslink/partners/?nc=sn&loc=6)开发和提供的一系列硬件模块提供动力。连接模块包括 AWS经过验证的软件，使您可以更快、更轻松地将设备安全地连接到云端，并与一系列 AWS 服务无缝集成。有关更多信息，请访问[AWS IoT ExpressLink](https://aws.amazon.com/iot-expresslink/)概述页面或参阅《[AWS IoT ExpressLink 程序员指南》](https://docs.aws.amazon.com/iot-expresslink/latest/programmersguide/elpg.html)。

**AWS IoT Greengrass**  
 [AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/)扩展 AWS IoT 到边缘设备，因此它们可以根据自己生成的数据在本地采取行动，根据机器学习模型进行预测，以及筛选和聚合设备数据。 AWS IoT Greengrass 使您的设备能够在离数据生成地点更近的地方收集和分析数据，对本地事件做出自主反应，并与本地网络上的其他设备进行安全通信。您可以使用预先构建的软件模块（称为组件） AWS IoT Greengrass 来构建边缘应用程序，这些模块可以将您的边缘设备连接到 AWS 服务或第三方服务。

**FreeRTOS**  
[FreeRTOS](https://docs.aws.amazon.com//freertos/) 是一款面向微控制器的开源实时操作系统，可让您在物联网解决方案中包含小型低功耗边缘设备。FreeRTOS 包括一个内核和越来越多的、支持许多应用程序的软件库。FreeRTOS 系统可以安全地将小型低功耗设备连接到 [AWS IoT](https://docs.aws.amazon.com//iot/)，并支持运行 [AWS IoT Greengrass](https://docs.aws.amazon.com//greengrass/) 的更强大的边缘设备。

### AWS IoT 控制服务
<a name="aws-iot-components-control"></a>

连接到以下 AWS IoT 服务以管理您的 IoT 解决方案中的设备。

**AWS IoT Core**  
[AWS IoT Core](https://docs.aws.amazon.com//iot/)是一项托管云服务，使联网设备能够安全地与云应用程序和其他设备进行交互。 AWS IoT Core 可以支持许多设备和消息，它可以处理这些消息并将其路由到 AWS IoT 端点和其他设备。借 AWS IoT Core助，您的应用程序可以与您的所有设备进行交互，即使这些设备未连接也是如此。

**AWS IoT Core 设备顾问**  
[AWS IoT Core Device Advisor](https://docs.aws.amazon.com//iot/latest/developerguide/device-advisor.html) 是一种基于云的完全托管式测试功能，用于在设备软件开发过程中验证物联网设备。Device Advisor 提供预先构建的测试，在将设备部署到生产环境之前 AWS IoT Core，您可以使用这些测试来验证物联网设备的可靠性和安全连接。

**AWS IoT 设备防御者**  
[AWS IoT Device Defender](https://docs.aws.amazon.com//iot-device-defender/) 可帮助您保护您的物联网设备群。 AWS IoT Device Defender 会持续审核您的物联网配置，以确保它们不会偏离安全最佳实践。 AWS IoT Device Defender 检测到您的物联网配置中存在任何可能造成安全风险的漏洞（例如在多个设备之间共享身份证书，或者正在尝试连接身份证书已吊销的设备正在尝试连接）时，它会发送警报。[AWS IoT Core](https://aws.amazon.com/iot-core/)

**AWS IoT 设备管理**  
[AWS IoT 设备管理](https://docs.aws.amazon.com//iot-device-management/)服务可帮助您跟踪、监控和管理构成设备群的大量联网设备。 AWS IoT 设备管理服务可帮助您确保物联网设备在部署后能够正常安全地运行。它们提供安全隧道来访问您的设备、监控设备的运行状况、检测和远程排除问题，还提供管理设备软件和固件更新的服务。

### AWS IoT 数据服务
<a name="aws-iot-components-data"></a>

使用以下 AWS IoT 服务分析来自物联网解决方案中设备的数据，并采取适当的措施。

**Amazon Kinesis Video Streams**  
[Amazon Kinesis V](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/what-is-kinesis-video.html) ideo Streams 允许您将直播视频从设备流式传输到 AWS 云端，在云端对视频进行持久存储、加密和索引，允许您通过访问数据。 easy-to-use APIs您可以使用 Amazon Kinesis Video Streams 捕获来自数百万种源（包括智能手机、安全摄像头、网络摄像头、车载摄像头、无人机及其他源）的海量实时视频数据。借助 Amazon Kinesis Video Streams，您可以播放视频以进行实时和点播观看，并通过与 Amazon Rekognition Video 和机器学习框架库集成来快速构建利用计算机视觉和视频分析的应用程序。您也可以发送非视频时间序列化数据，如音频数据、热成像、深度数据、雷达数据等。

**Amazon Kinesis Video Streams with WebRTC**  
[Amazon Kinesis Video Streams with WebRTC](https://docs.aws.amazon.com//kinesisvideostreams-webrtc-dg/latest/devguide/what-is-kvswebrtc.html) 提供符合标准的 WebRTC 实施作为完全托管式功能。您可以使用 Amazon Kinesis Video Streams with WebRTC 安全地进行媒体的实时流式传输，或在任何摄像头物联网设备与符合 WebRTC 的移动或 Web 播放器之间执行双向音频或视频交互。借助这项全面托管的功能，您不必构建、运营或扩展任何与 WebRTC 相关的云基础设施（例如信令或媒体中继服务器）便能安全地在应用程序和设备间流式传输媒体。使用带有 WebRTC 的 Amazon Kinesis Video Streams，您可以轻松构建用于 peer-to-peer直播媒体流的应用程序，或者针对各种用例在摄像机物联网设备、网络浏览器和移动设备之间进行实时音频或视频交互。

**AWS IoT 活动**  
[AWS IoT 事件](https://docs.aws.amazon.com//iotevents/)可检测并响应来自物联网传感器和应用程序的事件。事件是指识别比预期更复杂的情况的数据模式，例如使用运动信号激活灯光的运动探测器和安全摄像头。 AWS IoT Events 持续监控来自多个物联网传感器和应用程序的数据，并与其他服务（例如物联网 AWS IoT Core SiteWise、DynamoDB 等）集成，以实现早期检测和独特见解。

**AWS IoT FleetWise**  
[AWS IoT FleetWise](https://docs.aws.amazon.com//iot-fleetwise/latest/developerguide/what-is-iotfleetwise.html)是一项托管服务，可用于近乎实时地收集车辆数据并将其传输到云端。借 AWS IoT FleetWise助，您可以轻松收集和整理来自使用不同协议和数据格式的车辆的数据。 AWS IoT FleetWise 有助于将低级消息转换为人类可读的值，并标准化云端的数据格式以进行数据分析。您也可以制定数据收集方案，控制从车辆中收集哪些数据以及何时将该数据传输到云。

**AWS IoT SiteWise**  
[AWS IoT SiteWise](https://docs.aws.amazon.com//iot-sitewise/)通过提供 APIs 在设施网关上运行的软件，收集、存储、组织和监控通过 MQTT 消息或大规模地从工业设备传递的数据。网关可以安全地连接到您的本地数据服务器，并自动执行收集和组织数据并将其发送到 AWS 云端的过程。

**AWS IoT TwinMaker**  
[AWS IoT TwinMaker](https://docs.aws.amazon.com//iot-twinmaker/)构建物理和数字系统的可操作数字双胞胎。 AWS IoT TwinMaker 使用来自各种现实世界传感器、摄像头和企业应用程序的测量和分析来创建数字可视化，以帮助您跟踪实际工厂、建筑物或工业厂房。您可以使用真实世界的数据来监控运营、进行诊断和纠正错误以及优化运营。

## AWS IoT Core 服务
<a name="aws-iot-core-services"></a>

AWS IoT Core 提供将您的物联网设备连接到 AWS 云端的服务，以便其他云服务和应用程序可以与您的互联网连接设备进行交互。

![\[其高级视图显示 AWS IoT Core 了设备网关、消息代理、规则引擎、设备影子及其提供的其他服务\]](http://docs.aws.amazon.com/zh_cn/iot/latest/developerguide/images/aws_iot_data_services.png)


下一节将介绍插图中显示的每项 AWS IoT Core 服务。

### AWS IoT Core 消息服务
<a name="aws-iot-core-connect"></a>

 AWS IoT Core 连接服务提供与物联网设备的安全通信，并管理它们与之间传递的消息 AWS IoT。

**设备网关 **  
使设备能够安全高效地与 AWS IoT进行通信。设备通信由使用 X.509 证书的安全协议提供保护。

**消息代理 **  
为设备和 AWS IoT 应用程序提供一种安全机制，以相互发布和接收消息。您可以直接使用 MQTT 协议，也可以使用 MQTT WebSocket 进行发布和订阅。有关受 AWS IoT 支持的协议的更多信息，请参阅 [设备通信协议](protocols.md)。设备和客户端也可以使用 HTTP REST 接口将数据发布到消息代理。  
消息代理将设备数据分发给已订阅它的设备以及其他 AWS IoT Core 服务，例如 Device Shadow 服务和规则引擎。

**AWS IoT Core 适用于 LoRa广域网**  
AWS IoT Core for LoRa WAN AWS 无需开发和运行 LoRa WAN 网络服务器 (LNS)，即可通过将 LoRa WAN 设备和网关连接到，从而建立专用 LoRa WAN 网络。从 LoRa WAN 设备收到的消息将发送到规则引擎，在那里可以对其进行格式化并发送到其他 AWS IoT 服务。

**规则引擎 **  
规则引擎将消息代理中的数据连接到其它 AWS IoT 服务以进行存储和额外处理。例如，您可以插入、更新或查询 DynamoDB 表，也可以根据在规则引擎中定义的表达式调用 Lambda 函数。您可以使用基于 SQL 的语言选择消息有效载荷中的数据，然后处理数据并将数据发送到其它服务，如 Amazon Simple Storage Service（Amazon S3）、Amazon DynamoDB 和 AWS Lambda。您还可以创建规则以将消息重新发布到消息代理并面向其他订阅者。有关更多信息，请参阅 [的规则 AWS IoT](iot-rules.md)。

### AWS IoT Core 控制服务
<a name="aws-iot-core-control"></a>

 AWS IoT Core 控制服务提供设备安全、管理和注册功能。

**自定义身份验证服务**  
您可以定义自定义授权方，从而通过自定义的身份验证服务和 Lambda 函数来管理自己的身份验证和授权策略。自定义授权器 AWS IoT 允许使用持有者令牌身份验证和授权策略对您的设备进行身份验证并授权操作。  
自定义授权方可以实现各种身份验证策略；例如 JSON Web Token 验证或 OAuth提供者标注。它们必须返回设备网关用于授权 MQTT 操作的策略文档。有关更多信息，请参阅 [自定义身份验证和授权](custom-authentication.md)。

**设备预调配服务**  
让您可使用描述设备所需资源的模板来预调配设备：*事物对象*、证书以及一个或多个策略。事物对象是注册表中的一个条目，其中包含描述设备的属性。设备使用证书进行身份验证 AWS IoT。策略确定设备在 AWS IoT中可执行的操作。  
模板包含可用字典中的值替换的变量（映射）。您可以使用同一个模板来预调配多个设备，只需在字典中为模板变量传递不同的值。有关更多信息，请参阅 [设备预调配](iot-provision.md)。

**组注册表**  
通过将设备按类别分成不同的组，可以使用组来同时管理多台设备。组中还可以包含组，您可以构建组的层次结构。您对父组执行的任何操作都将应用于其子组。同样的操作也应用于父组中的所有设备以及子组中的所有设备。向某个组授予的权限将应用于该组及其子组中的所有设备。有关更多信息，请参阅 [使用管理设备 AWS IoT](iot-thing-management.md)。

**Jobs 服务**  
允许您定义一组远程操作，这些操作将被发送到一个或多个连接到 AWS IoT的设备并在这些设备上运行。例如，您可以定义一个任务，该任务指示一组设备下载并安装应用程序或固件更新、重启、轮换证书或执行远程故障排除操作。  
要创建任务，您需要指定要执行的远程操作的说明，以及应该执行这些操作的目标列表。目标可以是单个设备和/或设备组。有关更多信息，请参阅 [AWS IoT 职位](iot-jobs.md)。

**注册表**  
整理与 AWS 云中的每台设备关联的资源。您可以注册自己的设备并将每台设备与最多三个自定义属性关联。您还可以将证书和 MQTT 客户端 IDs 与每台设备关联，以提高管理和排除故障的能力。有关更多信息，请参阅 [使用管理设备 AWS IoT](iot-thing-management.md)。

**安全和身份服务 **  
为 AWS 云中的安全提供共担责任。为了安全地将数据发送到消息代理，您的设备必须确保自身凭证的安全。消息代理和规则引擎使用 AWS 安全特征将数据安全发送到设备或其它 AWS 服务。有关更多信息，请参阅 [身份验证](authentication.md)。

### AWS IoT Core 数据服务
<a name="aws-iot-core-data"></a>

 AWS IoT Core 数据服务可帮助您的物联网解决方案提供可靠的应用体验，即使设备并非始终处于连接状态。

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

**Device Shadow 服务 **  
Device Shadow 服务会保持设备的状态，以便应用程序可以与设备通信，无论设备是否在线。当设备处于离线状态时，Device Shadow 服务将管理它连接的应用程序的数据。当设备重新连接时，它会将其状态与 Device Shadow 服务中的状态同步。您的设备还可以将有关其当前状态的信息发布到影子，以供不会始终保持连接的应用程序或其它设备使用。有关更多信息，请参阅 [AWS IoT Device Shadow 服务](iot-device-shadows.md)。

### AWS IoT Core 支持服务
<a name="aws-iot-core-integ"></a>

**适用于 Amazon 人行道集成 AWS IoT Core**  
[Amazon Sidewalk](https://www.amazon.com/Amazon-Sidewalk/b?ie=UTF8&node=21328123011) 是一个共享网络，可改进连接选项，帮助设备更好地协同工作。Amazon Sidewalk 支持各种客户设备，例如定位宠物或贵重物品的设备、提供智能家居安全和照明控制的设备，以及为家电和工具提供远程诊断的设备。Amazon Sidewalk Integration AWS IoT Core 使设备制造商能够将他们的 Sidewalk 设备群添加到云端。 AWS IoT   
有关更多信息，请参阅 [适用于 Amazon Sidewalk 的 AWS IoT Core](https://docs.aws.amazon.com/iot-wireless/latest/developerguide/iot-sidewalk.html)。