你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

通过内置终结点读取设备到云的消息

默认情况下,消息将路由到与事件中心兼容的内置面向服务的终结点 (messages/events) 中。 IoT 中心向后端服务公开 messages/events 内置终结点,让后端服务读取中心收到的设备到云消息。 此终结点与事件中心兼容,这样就可以使用事件中心服务支持的任何机制读取消息。

如果正在使用消息路由并启用了回退路由,则一个与任何路由上的查询都不匹配的消息将进入内置终结点。 如果禁用此回退路由,则会删除与任何查询都不匹配的消息。

此终结点目前仅通过端口 5671 上的 AMQP 协议和端口 443 上的基于 WebSockets 的 AMQP 公开。 IoT 中心公开以下属性,以便用户控制内置的与事件中心兼容的消息传送终结点 messages/events

属性 说明
分区计数 在创建时设置此属性,以便为设备到云事件引入定义分区数。
保留时间 此属性指定 IoT 中心保留消息的时间(以天为单位)。 默认值为一天,但可以增加到七天。

通过 IoT 中心,可将数据保留在内置终结点中最长 7 天。 可以在创建 IoT 中心时设置保留时间。 IoT 中心的数据保留时间取决于 IoT 中心层和单元类型。 就大小来说,内置终结点可保留最大大小的消息,最长可达至少 24 小时的配额。 例如,一个 S1 单元 IoT 中心提供的存储足以保留至少 400,000 条消息,每条消息 4 KB。 如果设备发送的消息较小,则消息可能会保留更长时间(最长七天),具体取决于使用的存储。 我们保证至少在指定的保留时间内保留数据。 保留时间过后,消息会过期,变得不可访问。 可以使用 IoT 中心资源提供程序 REST API 以编程方式修改保留期时间,或通过 Azure 门户进行修改。

IoT 中心还支持管理内置终结点上的使用者组。 每个 IoT 中心最多可以有 20 个使用者组。

连接到内置终结点

某些产品集成和事件中心 SDK 可以感知 IoT 中心,并让你使用 IoT 中心服务连接字符串连接到内置的终结点。

使用无法感知 IoT 中心的事件中心 SDK 或产品集成时,需要一个与事件中心兼容的终结点以及与事件中心兼容的名称。 可以从门户中检索这些值,如下所示:

  1. 登录 Azure 门户,导航到 IoT 中心。

  2. 从资源菜单中的“中心设置”下选择“内置终结点”。

  3. “内置终结点”工作窗格包含三个部分:

    • “事件中心详细信息”部分包含以下值:“分区”、“与事件中心兼容的名称”、“保留时间”和“使用者组”。
    • “与事件中心兼容的终结点”部分包含以下值:“共享访问策略”和“与事件中心兼容的终结点”。
    • “云到设备消息传送”部分包含以下值:“默认 TTL”、“反馈保留时间”和“最大传送计数”。

    Screen capture showing device-to-cloud settings.

在工作窗格中,“与事件中心兼容的终结点”字段包含完整的事件中心连接字符串,如以下示例所示:

Endpoint=sb://abcd1234namespace.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=keykeykeykeykeykey=;EntityPath=iothub-ehub-abcd-1234-123456

如果所用 SDK 需求其他值,则这些值将会是:

名称
端点 sb://abcd1234namespace.servicebus.windows.net/
主机名 abcd1234namespace.servicebus.windows.net
命名空间 abcd1234namespace

然后,可以从“共享访问策略”下拉菜单中选择任何共享访问策略,如上一屏幕截图所示。 它仅显示可用于连接到指定事件中心的具有“ServiceConnect”权限的策略。

SDK 示例

可以用来连接到内置的、与事件中心兼容的且由 IoT 中心公开的终结点的 SDK 包括:

语言 SDK 中 IsInRole 中的声明 示例
.NET https://www.nuget.org/packages/Azure.Messaging.EventHubs ReadD2cMessages .NET
Java https://mvnrepository.com/artifact/com.azure/azure-messaging-eventhubs
Node.js https://www.npmjs.com/package/@azure/event-hubs read-d2c-messages Node.js
Python https://pypi.org/project/azure-eventhub/ read-dec-messages Python

可以与内置的、与事件中心兼容的且由 IoT 中心公开的终结点配合使用的产品集成包括:

后续步骤