Azure IoT 中心定价信息

Azure IoT 中心定价概述了 IoT 中心的不同 SKU 和定价。 本文详述了 IoT 中心如何按消息对各种 IoT 中心功能计费。

注意

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

每个操作的费用

使用下表可帮助确定哪些操作收费。 在基本层和标准层 IoT 中心,所有计费操作均以 4K 字节块大小为单位收费。 在免费层 IoT 中心,操作以 0.5K 字节区块大小为单位进行计量。 “计费信息”列提供了每个类别的详细信息。 此列包含以下信息:

  • 有关如何在基本层和标准层 IoT 中心计量计费操作的详细信息。 并非所有操作都在基本层中可用。
  • 产生费用的操作,带有以下任一项:
    • 指向 REST API 文档的链接(如果存在)。
    • 如果 REST API 文档不可用,或者该操作只能通过 MQTT 和/或 AMQP 使用,则为操作终结点。 终结点值省略了对目标 IoT 中心的前导引用:{fully-qualified-iothubname}.azure-devices.net
  • 每个操作(或终结点)后面的一个或多个斜体形式的术语。 这些术语表示根据 IoT 中心配额收费的计费操作。 在 Azure 门户上发起支持请求时,你可能会看到这些术语作为配额使用情况见解的一部分提供。 它们也可能由客户支持返回。 你可以使用下表将这些术语与相应的操作交叉引用,以帮助你了解 IoT 解决方案的配额使用情况和计费。 有关详细信息,请参阅示例 4
操作类别 计费信息
标识注册表操作
(创建、更新、获取、列出、删除、批量更新、统计信息)
不收费。
设备到云的消息 成功发送的消息以流入 IoT 中心的 4KB 区块大小为单位进行收费。 例如,一条 100 字节的消息按 1 条消息收费,一条 6 KB 的消息按 2 条消息收费。

发送设备事件:设备到云遥测或设备到云遥测路由(取决于 IoT 中心是否配置了消息路由功能)。
云到设备的消息 成功发送的消息以 4 KB 区块大小为单位收费。 例如,1 个 6KB 的消息按 2 个消息收费。

接收发往设备的通知:云到设备命令
文件上传 向 Azure 存储传输文件时,不通过 IoT 中心计费。 文件传输时的启动消息和完成消息按 4KB 增量数计费。 例如,传输一个 10 MB 的文件时,会在 Azure 存储费用的基础上收取两条消息的费用。

创建文件上传 SAS URI:设备到云文件上传
更新云上传状态:设备到云文件上传
直接方法 成功的方法请求按 4-KB 区块大小为单位收费,响应作为附加消息以 4-KB 区块大小为单位收费。 没有有效负载的请求或响应作为 1 条消息收费。 例如,正文为 4 KB 的方法产生的来自设备的响应若没有有效负载,则按 2 条消息收费。 而正文为 6KB 的方法产生的来自设备的响应若为 1KB,则按 2 条请求消息收费,另加一条响应的消息费用。 向断开连接的设备发出的请求按消息以 4 KB 区块大小为单位收费,另加一条指示设备不在线的响应消息的费用。

设备 - 调用方法:设备直接调用方法,
模块 - 调用方法:模块直接调用方法
设备和模块孪生读取 如果孪生从设备/模块和解决方案后端进行读取,则将其作为消息以 4 KB 区块大小为单位收费。 例如,读取 8 KB 的孪生按 2 条消息收费。

获取孪生:获取孪生
获取模块孪生:获取模块孪生

从设备读取设备和模块孪生:
终结点/devices/{id}/twin(仅限 MQTT、AMQP):D2C 获取孪生
终结点/devices/{deviceid}/modules/{moduleid}/twin(仅限 MQTT、AMQP):模块 D2C 获取孪生
设备和模块孪生更新(标记和属性) 如果孪生从设备/模块和解决方案后端进行更新,则将其作为消息以 4 区块大小为单位收费。 例如,对孪生的 12 KB 更新按 3 条消息收费。

更新孪生:更新孪生
更新模块孪生:更新模块孪生
替换孪生:替换孪生
替换模块孪生:替换模块孪生

从设备更新设备或模块孪生报告的属性:
终结点/twin/PATCH/properties/reported/(仅限 MQTT、AMQP):D2 修补 ReportedProperties 或模块 D2 修补 ReportedProperties

在设备上接收所需属性更新通知:
终结点/twin/PATCH/properties/desired/(仅限 MQTT、AMQP):D2C 通知 DesiredProperties 或模块 D2C 通知 DesiredProperties
设备和模块孪生查询 针对 devices 或 devices.modules 的查询作为消息计费,具体取决于以 4 KB 区块为单位的结果大小。 针对 jobs 的查询不收费。

获取孪生(对 devices 或 devices.modules 集合进行查询):查询设备
数字孪生体读取 如果数字孪生体从解决方案后端进行读取,则将其作为消息以 4 KB 区块大小为单位收费。 例如,读取 8 KB 的孪生按 2 条消息收费。

获取数字孪生体:获取数字孪生体
数字孪生体更新 如果数字孪生体从解决方案后端进行更新,则将其作为消息以 4 KB 区块大小为单位收费。 例如,对孪生的 12 KB 更新按 3 条消息收费。

更新数字孪生体:修补数字孪生体
数字孪生体命令 成功的命令以 4 KB 区块大小为单位收费,响应作为附加消息以 4 KB 区块大小为单位收费。 没有正文的请求或响应按 1 条消息收费。 例如,正文为 4 KB 的命令产生的来自设备的响应若没有正文,则按 2 条消息收费。 正文为 6 KB 的命令产生的来自设备的响应若为 1 KB,则按 2 条命令消息收费,另加一条响应消息的费用。 对断开连接的设备执行的命令按消息以 4 KB 区块大小为单位收费,另加一条指示设备不在线的响应消息的费用。

调用组件命令:数字孪生体组件命令
调用根级别命令:数字孪生体根命令
作业操作
(创建、取消、获取、查询)
不收费。
作业的每设备操作数 作业操作(例如孪生更新和方法)以 4 KB 区块大小为单位收费。 例如,如果一个作业生成 1000 个方法调用以及 1 KB 的请求和有效负载为空的响应,则按 2000 条消息收费(请求和响应各一条消息)。

更新孪生设备作业
调用方法设备作业
配置操作
(创建、更新、获取、列出、删除、测试查询)
不收费。
每设备配置操作 配置操作按消息以 4 KB 区块大小为单位收费。 响应不收费。 例如,正文为 6 KB 的应用配置操作按 2 条消息收费。

在边缘设备上应用:配置服务应用。
连接保持的消息 使用 AMQP 或 MQTT 协议时,为建立连接而交换的消息和协商中交换的消息或为使连接保持打开和活动状态而交换的消息不收费。
设备流(预览版) 设备流处于预览阶段,操作尚未收费。

终结点/twins/{deviceId}/streams/{streamName}:设备流
终结点/twins/{deviceId}/modules/{moduleId}/streams/{streamName}:设备流模块

注意

所有大小均按以字节为单位的有效负载大小进行计算(忽略协议组帧)。 对于具有属性和正文的消息,大小以无关协议的方式计算。 有关详细信息,请参阅 IoT 中心消息格式

不同类型的操作的最大消息大小不同。 若要了解详细信息,请参阅 IoT 中心配额和限制

对于某些操作,可以使用批处理和压缩策略来降低成本。 有关使用设备到云遥测的示例,请参阅示例 3

示例 #1

某个设备每分钟将一条 1KB 的设备到云的消息发送到 IoT 中心,该消息随后由 Azure 流分析读取。 解决方案后端每 10 分钟调用设备上的 1 个方法(有效负载为 512 字节),以便触发特定操作。 设备以 200 字节大小的结果响应方法。

设备使用:

  • 一条消息 * 60 分钟 * 24 个小时 = 每天 1440 条消息用于设备到云消息传递。

  • 2 条消息(请求加响应)* 每小时 6 次 * 24 小时 = 288 条消息用于方法。

此计算得出每天共 1728 条消息。

示例 2

某设备每小时发送 1 条 100KB 的设备到云的消息。 它还每隔 4 小时更新一次有效负载为 1KB 的设备孪生。 解决方案后端每天读取一次 14KB 的设备孪生并使用 512 字节的有效负载更新一次,以更改配置。

设备使用:

  • 25 (100KB/4KB) 条消息 * 24 小时用于设备到云消息传递。

  • 2 条消息 (1 KB/4 KB) * 每天 6 次用于设备孪生更新。

此计算得出每天共 606 条消息。

解决方案后端使用 4 条消息 (14 KB/4 KB) 读取设备孪生,并使用 1 条消息 (512/4 KB) 进行更新,总计 5 条消息。

设备和解决方案后端每天总共使用 611 条消息。

示例 3

根据你的方案,批处理消息可以减少配额使用量。

以某个设备为例,它有一个传感器,每次读取时仅生成 100 字节的数据:

  • 如果设备将 40 个传感器的读取数据批处理为具有 4 KB 有效负载的一条设备到云消息(40 * 100 字节),则仅按 1 条消息收取配额费用。 如果设备每小时读取传感器 40 次,并且每小时将这些读取数据批处理为一条设备到云消息,那么它每天将发送 24 条消息。

  • 如果设备针对每次传感器读取发送一条具有 100 字节有效负载的设备到云消息,那么它会针对相同数据量的配额消耗 40 条消息。 如果设备每小时读取传感器 40 次并单独发送每条消息,它每天将发送 960 条消息(40 条消息 * 24)。

批处理策略取决于你的具体情况以及数据的时间紧迫性。 如果你要发送大量数据,还可以考虑实施数据压缩,进一步降低对消息配额的影响。

示例 4

当你在 Azure 门户上创建支持请求时,系统会运行特定于所报告问题的诊断。 结果显示为请求的“解决方案”选项卡上的见解。 这种见解会使用前面表中的斜体术语报告 IoT 中心的配额使用情况。 是否返回此特定见解取决于在 IoT 中心针对所报告的问题执行的诊断的结果。 如果报告了配额使用情况见解,你可以使用表将报告的一个或多个使用情况术语与它们所指的操作进行交叉引用。

例如,以下屏幕截图显示了针对设备到云遥测问题发起的支持请求。

Screenshot that shows selecting an issue in Azure portal support request.

选择“下一步: 解决方案”后,“IoT 中心每日消息配额明细”下的诊断会返回配额使用情况见解。 它会显示发送到 IoT 中心的设备到云消息的明细。 在本示例中,IoT 中心启用了消息路由,因此消息显示为“设备到云遥测路由”。 请注意,对于不同 IoT 中心上的相同问题,可能不会返回配额使用情况见解。 返回的内容取决于该 IoT 中心的活动和状态。

Screenshot that shows quota usage in Azure portal support request.