如何链接和管理 IoT 中心

Azure IoT 中心设备预配服务 (DPS) 可以跨一个或多个 IoT 中心预配设备。 DPS 必须能够写入 IoT 中心设备注册表才能将设备预配到 IoT 中心。 本文提供有关如何链接 IoT 中心并在 DPS 实例中对其进行管理的说明。 链接后,可以在分配策略中使用 IoT 中心。 分配策略确定 DPS 如何将设备分配到 IoT 中心。

链接的 IoT 中心设置

设备预配服务只能将设备预配到已链接到它的 IoT 中心。 将 IoT 中心链接到 DPS 实例可授予 DPS 实例对 IoT 中心设备注册表的读/写权限。 有了这些权限,DPS 可以注册设备 ID 并设置设备孪生的初始配置。 链接 IoT 中心可能位于任何 Azure 区域。 可将其他订阅中的中心链接到 DPS 实例。

IoT 中心在链接到 DPS 后,它可以参与分配。 它是否以及如何参与分配取决于用于预配设备的注册中的设置,以及链接的 IoT 中心本身的设置。

以下设置控制 DPS 如何使用链接的 IoT 中心:

  • 连接字符串:设置由 DPS 用来连接到链接的 IoT 中心的 IoT 中心连接字符串。 该连接字符串基于 IoT 中心的共享访问策略之一。 DPS 需要对 IoT 中心拥有以下权限:RegistryWrite 和 ServiceConnect。 该连接字符串必须用于拥有这些权限的共享访问策略。 若要详细了解 IoT 中心共享访问策略,请参阅 IoT 中心访问控制和权限

  • 分配权重:确定当 DPS 对一组 IoT 中心的设备分配进行哈希处理时选择某个 IoT 中心的可能性。 该值可以介于 1 和 1000 之间。 默认值为 1(或 null)。 较高的值会提高 IoT 中心被选中的概率。

  • 应用分配策略:设置 IoT 中心是否参与分配策略。 默认值为“是”(true)。 如果设置为“否”(false),则不会将设备分配到 IoT 中心。 仍可以在注册时选择 IoT 中心,但它不会参与分配。 可以使用此设置暂时或永久禁止某个 IoT 中心参与分配;例如,在接近允许的设备数时。

若要了解 DPS 分配策略以及链接的 IoT 中心如何参与这些策略,请参阅管理分配策略

限制

  • 使用链接的 IoT 中心和专用终结点时存在一些限制。 有关详细信息,请参阅专用终结点的限制

  • 链接的 IoT 中心的“使用共享访问策略进行连接”必须设置为“允许”

添加链接的 IoT 中心

可以添加订阅内部或外部的 IoT 中心。 链接 IoT 中心时,它不一定可用于现有注册中的分配:

  • 对于未显式设置要应用分配策略的 IoT 中心的注册,新链接的 IoT 中心将立即开始参与分配。

  • 对于显式设置了要应用分配策略的 IoT 中心的注册,需要手动或以编程方式将新的 IoT 中心添加到注册设置,这样它才能参与分配。

在 Azure 门户中,可以从 DPS 实例的左侧菜单中或者在创建或更新注册时从注册链接 IoT 中心。 在这两种情况下,IoT 中心的范围都限定为 DPS 实例(而不仅仅是注册)。

若要在 Azure 门户中将 IoT 中心链接到 DPS 实例,请执行以下操作:

  1. 在 DPS 实例的左侧菜单中,选择“链接的 IoT 中心”。

  2. 在页面顶部,选择“+ 添加”。

  3. 在“添加 IoT 中心的链接”页上,选择包含该 IoT 中心的订阅,然后从“IoT 中心”列表中选择该 IoT 中心的名称。

  4. 选择 IoT 中心后,选择由 DPS 用来连接到 IoT 中心的访问策略。 “访问策略”列表会显示在选定的 IoT 中心上定义的所有共享访问策略,为这些策略定义了“RegistryWrite”和“ServiceConnect”权限。 默认值为“iothubowner”策略。 选择要使用的策略。

  5. 选择“保存”。

注意

在 Azure 门户中,无法在添加链接的 IoT 中心时设置“分配权重”和“应用分配策略”设置。 应该在链接 IoT 中心之后更新这些设置。

DPS 还支持使用创建或更新 DPS 资源 REST API、资源管理器模板DPS 管理 SDK 链接 IoT 中心。

更新链接的 IoT 中心

可以更新链接的 IoT 中心上的设置,以更改其分配权重、是否可以对其应用分配策略,以及由 DPS 用来连接该 IoT 中心的连接字符串。 更新 IoT 中心的设置时,更改会立即生效,无论 IoT 中心是在注册中指定的还是默认使用的。

在 Azure 门户中,可以更新“分配权重”和“应用分配策略”设置。

若要使用 Azure 门户更新链接的 IoT 中心的设置,请执行以下操作:

  1. 在 DPS 实例的左侧菜单中选择“链接的 IoT 中心”,然后从列表中选择该 IoT 中心。

  2. 在“链接的 IoT 中心详细信息”页上:

    显示链接的 IoT 中心详细信息页的屏幕截图。

    • 使用“分配权重”滑块或文本框选择介于 1 和 1000 之间的权重。 默认值为 1。

    • 设置“应用分配策略”开关,指定链接的 IoT 中心是否应包含在分配中。

  3. 保存设置。

注意

无法在 Azure 门户中更新由 DPS 用来连接 IoT 中心的连接字符串。 请改用 Azure CLI 更新连接字符串,或者从 DPS 实例中删除链接的 IoT 中心,然后重新链接它。 有关详细信息,请参阅更新链接的 IoT 中心的密钥部分。

DPS 还支持使用创建或更新 DPS 资源 REST API、资源管理器模板DPS 管理 SDK 更新链接的 IoT 中心。

删除链接的 IoT 中心

从 DPS 实例中删除链接的 IoT 中心后,不再可以在将来的注册中设置该 IoT 中心。 但是,不一定会从现有注册的分配中删除它:

  • 对于未显式设置要应用分配策略的 IoT 中心的注册,已删除的链接 IoT 中心不再可用于分配。

  • 对于显式设置了要应用分配策略的 IoT 中心的注册,需要手动或以编程方式从注册设置中删除该 IoT 中心,这样才能禁止它参与分配。 如果不这样做,当设备尝试通过注册进行预配时可能会导致错误。

若要在 Azure 门户上从 DPS 实例中删除链接的 IoT 中心,请执行以下操作:

  1. 在 DPS 实例的左侧菜单中,选择“链接的 IoT 中心”。

  2. 从 IoT 中心列表中,选中要删除的一个或多个 IoT 中心旁边的复选框。 然后选择页面顶部的“删除”,并在出现提示时确认所做的选择。

DPS 还支持使用创建或更新 DPS 资源 REST API、资源管理器模板DPS 管理 SDK 从 DPS 实例中删除链接的 IoT 中心。

更新链接的 IoT 中心的密钥

有时需要轮换或更新已链接到 DPS 的 IoT 中心的对称密钥。 在这种情况下,还需要在 DPS 中更新链接的 IoT 中心的连接字符串设置。

在更新 IoT 中心的密钥之后、使用基于该密钥的新连接字符串更新 DPS 实例之前的这一段过渡期,预配到 IoT 中心的操作将会失败。 因此,我们建议使用 Azure CLI 更新密钥,因为这样可以直接更新链接的中心的连接字符串。 如果使用 Azure 门户,必须从 DPS 实例中删除 IoT 中心,然后重新链接它才能更新连接字符串。

使用 Azure 门户时无法更新链接的 IoT 中心的连接字符串设置。 而是需要从 DPS 实例中删除链接的 IoT 中心,然后重新添加它。

若要在 Azure 门户中更新链接的 IoT 中心的对称密钥,请执行以下操作:

  1. 在 Azure 门户上 DPS 实例的左侧菜单中,选择要更新其一个或多个密钥的 IoT 中心。

  2. 在“链接的 IoT 中心详细信息”页上,记下“分配权重”和“应用分配策略”的值。 稍后将 IoT 中心重新链接到 DPS 实例时需要这些值。 然后,选择“管理资源”转到 IoT 中心。

  3. 在 IoT 中心的左侧菜单中的“安全设置”下,选择“共享访问策略”。

  4. 在“共享访问策略”中的“管理共享访问策略”下,选择由 DPS 实例用来连接到链接的 IoT 中心的策略。

  5. 在页面顶部,选择“重新生成主密钥”、“重新生成辅助密钥”或“交换密钥”,并在出现提示时确认所做的选择。

  6. 导航回 DPS 实例。

  7. 按照删除链接的 IoT 中心部分中所述的步骤从 DPS 实例中删除 IoT 中心。

  8. 按照添加链接的 IoT 中心部分中所述的步骤使用策略的新连接字符串将 IoT 中心重新链接到 DPS 实例。

  9. 如果需要还原“分配权重”和“应用分配策略”设置,请使用在步骤 2 中保存的值执行更新链接的 IoT 中心部分中所述的步骤。

后续步骤