参考 - IoT 中心终结点

Note

本文中提到的某些功能(例如云到设备消息传递、设备孪生、设备管理)仅在 IoT 中心的标准层中提供。 有关基本和标准 IoT 中心层的详细信息,请参阅如何选择合适的 IoT 中心层

IoT 中心名称

可以在“概述”边栏选项卡上找到在门户中承载你的终结点的 IoT 中心的名称。 默认情况下,IoT 中心的 DNS 名称如下所示:{your iot hub name}.azure-devices.cn

内置 IoT 中心终结点列表

Azure IoT 中心属于多租户服务,向各种执行组件公开功能。 下图显示了 IoT 中心公开的各种终结点。

IoT 中心终结点

以下列表对这些终结点进行了说明:

  • 资源提供程序。 IoT 中心资源提供程序公开一个 Azure 资源管理器接口。 此接口使 Azure 订阅所有者可以创建和删除 IoT 中心以及更新 IoT 中心属性。 IoT 中心属性可管理中心级别的安全策略,相对于设备级别的访问控制和云到设备及设备到云消息传送的功能选项。 IoT 中心资源提供程序还可让用户 导出设备标识
  • 设备标识管理。 每个 IoT 中心公开一组用于管理设备标识的 HTTPS REST 终结点(创建、检索、更新和删除)。 设备标识用于设备身份验证和访问控制。
  • 设备孪生管理。 每个 IoT 中心都会公开一组面向服务的 HTTPS REST 终结点,用于查询和更新设备孪生(更新标记和属性)。
  • 作业管理。 每个 IoT 中心都会公开一组面向服务的 HTTPS REST 终结点,用于查询和管理作业
  • 设备终结点。 对于标识注册表中的每个设备,IoT 中心都会公开一组终结点:

    • 发送设备到云的消息。 设备使用此终结点发送设备到云的消息
    • 接收云到设备的消息。 设备使用此终结点接收面向云到设备的消息
    • 启动文件上传。 设备使用此终结点接收来自 IoT 中心的 Azure 存储 SAS URI,以便上传文件
    • 检索并更新设备孪生的属性。 设备使用此终结点访问其 设备孪生的属性。
    • 接收直接方法请求。 设备使用此终结点侦听直接方法的请求。

      这些终结点使用 MQTT v3.1.1、HTTPS 1.1 和 AMQP 1.0 协议进行公开。 还可通过端口 443 上的 WebSocket 来实现 AMQP。

  • 服务终结点。 每个 IoT 中心公开一组终结点,供解决方案后端用于与设备通信。 除了一个例外,这些终结点只使用 AMQP 协议进行公开。 方法调用终结点通过 HTTPS 协议进行公开。

    • 接收设备到云的消息。 此终结点与 Azure 事件中心兼容。 后端服务可用它来读取由设备发送的 设备到云消息 。 除了此内置终结点外,还可以在 IoT 中心创建自定义终结点。
    • 发送云到设备的消息并接收传递确认。 这些终结点可让解决方案后端发送可靠的 云到设备的消息,以及接收对应的传送或过期确认。
    • 接收文件通知。 此消息传递终结点允许在设备成功上传文件时接收通知。
    • 直接方法调用。 此终结点允许后端服务调用设备上的直接方法
    • 接收操作监视事件。 此终结点可以用于接收操作监视事件,前提是已将 IoT 中心配置为发出这些事件。 有关详细信息,请参阅 IoT 中心操作监视

Azure IoT SDK 一文介绍了访问这些终结点的各种方法。

所有 IoT 中心终结点都使用 TLS 协议,且绝不会在未加密/不安全的通道上公开任何终结点。

自定义终结点

可将订阅中的现有 Azure 服务链接到用作消息路由终结点的 IoT 中心。 这些终结点充当服务终结点,并用作消息路由的接收器。 设备无法直接写入附加终结点。 若要了解有关消息路由的详细信息,请参阅 通过 IoT 中心发送和接收消息中的开发人员指南条目。

IoT 中心当前支持将以下 Azure 服务作为附加终结点:

  • Azure 存储容器
  • 事件中心
  • 服务总线队列
  • 服务总线主题

IoT 中心需要这些服务终结点的写入权限,以便使用消息路由。 如果通过 Azure 门户配置终结点,则为你添加必要权限。 请确保将服务配置为支持预期吞吐量。 在首次配置 IoT 解决方案时,可能需要监视附加终结点,并针对实际负载进行任意的必要调整。

如果消息与多个路由匹配,而这些路由全部指向同一终结点,则 IoT 中心仅向该终结点传递一次消息。 因此不必在服务总线队列或主题中配置重复数据删除。 在分区队列中,分区相关性可保障消息排序。

有关可添加终结点的数量限制,请参阅 配额和限制

如果使用 Azure 存储容器

IoT 中心仅支持将数据以 Apache Avro 格式作为 blob 写入 Azure 存储容器。 出现下列情况时,IoT 中心将对消息进行批处理,并将数据写入 blob:

  • 批达到特定大小。
  • 或者已经过了一段时间。

如果没有要写入的数据,IoT 中心会写入到一个空 blob。

IoT 中心默认为以下文件命名约定:

{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}

可以使用任何你希望的文件命名约定,但必须使用所有列出的令牌。

如果使用服务总线队列和主题

用作 IoT 中心终结点的服务总线队列和主题不能启用“会话”或“重复项检测”。 如果启用了其中任一选项,该终结点将在 Azure 门户中显示为“无法访问”。

现场网关

在 IoT 解决方案中, 现场网关 位于设备和 IoT 中心终结点之间。 它通常位于靠近设备的位置。 设备使用设备支持的协议,直接与现场网关通信。 现场网关使用 IoT 中心支持的协议连接到 IoT 中心终结点。 现场网关可能是专用硬件设备或运行自定义网关软件的低功率计算机。

可使用 Azure IoT Edge 实现现场网关。 IoT Edge 提供一些功能,例如从多台设备向同一 IoT 中心连接多路复用通信。

后续步骤

此 IoT 中心开发人员指南中的其他参考主题包括: