你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
将设备迁移到 Azure IoT 中心
如果决定从基于 IoT Central 的解决方案迁移到基于 IoT 中心的解决方案,则需要更改当前连接到应用程序的所有设备的配置。 IoTC 迁移程序工具会自动执行此设备迁移过程。
迁移程序工具:
- 在 IoT 中心为当前连接到 IoT Central 应用程序的设备创建设备注册。
- 使用命令将与 IoT 中心关联的设备预配服务 (DPS) 实例的 ID 范围发送到设备。
该工具要求连接的设备实现在 IoT Central 应用程序中的设备模板中定义的 DeviceMove 命令。 命令有效负载是目标 DPS 实例的 ID 范围。 设备收到此命令时,它应:
- 停止发送遥测数据并断开与 IoT Central 应用程序的连接。
- 使用命令有效负载中的新 ID 范围为自身预配 DPS。
- 使用预配结果连接到目标 IoT 中心,然后再次开始发送遥测数据。
提示
还可以使用迁移程序工具在 IoT Cental 应用程序之间迁移设备,也可以将设备从 IoT 中心迁移到 IoT Central 应用程序。
最大程度地减少中断
为了最大程度地减少中断,可以分阶段迁移设备。 迁移器工具使用设备组将设备从 IoT Central 迁移到 IoT 中心。 将设备群划分为多个设备组,例如“德克萨斯州的设备”、“纽约的设备”以及“美国其余地区的设备”。 然后独立迁移每个设备组。
警告
你无法将未分配的设备添加到设备组。 因此,你当前无法使用迁移器工具迁移未分配的设备。
通过执行以下步骤最大程度地降低业务影响:
创建 PaaS 解决方案,并将其与 IoT Central 应用程序并行运行。
在 IoT Central 应用程序中设置连续数据导出,并设置与 PaaS 解决方案 IoT 中心之间的适当路由。 转换这两个数据通道,并将数据存储到同一个数据湖中。
分阶段迁移设备,并在每个阶段进行验证。 如果某些事宜未按计划进行,请将设备故障回复到 IoT Central。
将所有设备迁移到 PaaS 解决方案并从 IoT Central 完全导出数据后,便可以从 IoT Central 解决方案中删除设备了。
迁移后,设备不会自动从 IoT Central 应用程序中删除。 将会按照应用程序中所有预配设备的 IoT Central 费用对这些设备继续计费。 从 IoT Central 应用程序中删除这些设备后,你无需再为这些设备付费。 最后,删除 IoT Central 应用程序。
将现有数据从 IoT Central 移出
可以配置 IoT Central 以连续导出遥测和属性值。 导出目标为数据存储,例如 Azure Data Lake、事件中心和 Webhook。 可以使用 IoT Central UI 或 REST API 导出设备模板。 通过 REST API,可以导出 IoT Central 应用程序中的用户。
先决条件
若要完成设备迁移步骤,需要具备以下先决条件:
- 设备当前连接的源 IoT Central 应用程序。
- 要将设备移动到的目标 IoT 中心。 此 IoT 中心必须链接到 DPS 实例。
- node.js 和 npm 安装在运行迁移程序工具的本地计算机上。
设备要求
要迁移的设备必须在名为“migration”的组件中实现“DeviceMove”命令。 命令有效负载包含目标 DPS 实例的 ID 范围。 迁移程序工具存储库包含一个示例 DTDL 组件模型,它定义了 DeviceMove 命令。 可以将此组件添加到现有的设备模板中。
该工具假定组件名称为 migration
,接口 ID 为 dtmi:azureiot:DeviceMigration;1
:
工具存储库还包括示例代码,展示设备应如何实现 DeviceMove 命令。
工具设置
完成以下设置任务以准备迁移:
Microsoft Entra 应用程序
迁移程序工具需要 Microsoft Entra 应用程序注册,才能使用 Azure 订阅进行身份验证:
选择“新建注册”。
输入名称,例如“IoTC 迁移程序应用”。
选择“任何组织目录中的帐户(任何 Microsoft Entra 目录 - 多租户)和个人 Microsoft 帐户(例如 Skype、Xbox)”。
选择“单页应用程序(SPA)”。
输入
http://localhost:3000
作为重定向 URI。 稍后将此值添加到迁移程序应用配置。选择“注册” 。
记下“应用程序(客户端) ID”和“目录(租户) ID”的值。 稍后可以使用这些值来配置迁移程序应用:
导航到注册中的“清单”页,并将
requiredResourceAccess
的内容替换为以下配置:[ { "resourceAppId": "9edfcdd9-0bc5-4bd4-b287-c3afc716aac7", "resourceAccess": [ { "id": "73792908-5709-46da-9a68-098589599db6", "type": "Scope" } ] }, { "resourceAppId": "797f4846-ba00-4fd7-ba43-dac1f8f63013", "resourceAccess": [ { "id": "41094075-9dad-400e-a0bd-54e686782033", "type": "Scope" } ] }, { "resourceAppId": "00000003-0000-0000-c000-000000000000", "resourceAccess": [ { "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d", "type": "Scope" } ] } ]
保存更改。
将设备密钥添加到 DPS
将 IoT Central 应用程序的共享访问签名密钥或 X.509 证书添加到 DPS 分配组。
如果设备使用共享访问签名向 IoT Central 应用程序进行身份验证:
- 在 IoT Central 应用程序中,导航到“权限”>“设备连接组”。
- 选择设备使用的注册组。
- 记下主密钥和辅助密钥。
- 在 Azure 门户中,导航到你的 DPS 实例。
- 选择“管理注册”。
- 创建新的注册并将证明类型设置为“对称密钥”,取消选择“自动生成密钥”,然后添加记下的主密钥和辅助密钥。
- 选择“保存”。
如果设备使用 X.509 证书向 IoT Central 应用程序进行身份验证:
- 在 Azure 门户中,导航到你的 DPS 实例。
- 选择“证书”,然后选择“添加”。
- 上传并验证在 IoT Central 应用程序中使用的根证书或中间 X.509 证书。
- 选择“管理注册”。
- 创建新的注册并将证明类型设置为“证书”,然后选择上传的主证书和辅助证书。
- 选择“保存”。
下载并配置迁移程序工具
将迁移程序工具的副本下载或克隆到本地计算机:
git clone https://github.com/Azure/iotc-migrator.git
在下载的存储库的根目录中,创建 .env 文件。 使用之前创建的 Microsoft Entra 应用程序注册中的值更新 REACT_APP_AAD_APP_CLIENT_ID
、REACT_APP_AAD_APP_TENANT_ID
和 REACT_APP_AAD_APP_REDIRECT_URI
值。 保存更改:
PORT=3000
REACT_APP_AAD_APP_CLIENT_ID=<your-AAD-Application-(client)-ID>
REACT_APP_AAD_APP_TENANT_ID=<your-AAD-Directory-(tenant)-ID>
REACT_APP_AAD_APP_REDIRECT_URI=http://localhost:3000
提示
确保 REACT_APP_AAD_APP_REDIRECT_URI
与 Microsoft Entra 应用程序注册中使用的重定向 URI 匹配。
在命令行环境中,导航到 iotc-migrator
存储库的根目录。 然后,运行以下命令,安装所需的 node.js 包并运行该工具:
npm install
npm start
迁移程序应用启动后,导航到 http://localhost:3000
查看该工具。 出现提示时登录。
迁移设备
使用工具批量迁移设备。 在“新建迁移”页上,输入迁移详细信息:
- 输入迁移的名称。
- 从 IoT Central 应用程序选择设备组。
- 选择包含 DeviceMove 命令定义的设备模板。
- 选择“移动到自己的 Azure IoT 中心”。
- 选择链接到目标 IoT 中心的 DPS 实例。
- 选择“迁移”。 该工具会提示将密钥从 IoT Central 应用程序复制到 DPS 注册组。 你之前在将设备密钥添加到 DPS 步骤中完成了此步骤。
该工具现在注册与目标 IoT 中心的目标设备筛选器匹配的所有已连接设备。 然后,该工具会在 IoT Central 应用程序中创建一个作业,以在所有这些设备上调用 DeviceMove 方法。 命令有效负载包含目标 DPS 实例的 ID 范围。
验证迁移
使用迁移程序工具中的“迁移状态”页监视进度:
在“迁移状态”页上选择一个作业,以在 IoT Central 应用程序中查看作业状态。 使用此页查看作业中各个设备的状态:
成功迁移的设备: