你当前正在访问 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 Central 应用程序之间迁移设备,或从 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 应用程序中导出用户。

先决条件

需要满足以下先决条件才能完成设备迁移步骤:

设备要求

要迁移的设备必须在名为迁移的组件中实现 DeviceMove 命令。 命令有效负载包含目标 DPS 实例的 ID 范围 。 迁移程序工具存储库包含定义 DeviceMove 命令的示例 DTDL 组件模型。 可以将此组件添加到现有设备模板。

该工具假定组件名称为 migration ,接口 ID 为 dtmi:azureiot:DeviceMigration;1

突出显示组件名称和接口 ID 的屏幕截图。

工具存储库还包括 示例代码 ,其中显示了设备应如何实现 DeviceMove 命令。

工具设置

完成以下设置任务以准备迁移:

Microsoft Entra 应用程序

迁移工具需要Microsoft Entra应用注册,以便能够对Azure订阅进行身份验证。

  1. 导航到 Azure 门户 > Microsoft Entra ID > 应用注册

  2. 选择 “新建注册”。

  3. 输入名称,例如“IoTC 迁移器应用”。

  4. 选择任何组织目录中的帐户(任何 Microsoft Entra 目录 - 多租户)以及个人 Microsoft 帐户(例如 Skype、Xbox)。

  5. 选择“单页应用程序”(SPA)。

  6. 输入 http://localhost:3000 为重定向 URI。 稍后将此值添加到迁移程序应用配置。

  7. 选择“注册”。

  8. 记下 应用程序(客户端)ID目录(租户)ID 值。 稍后将使用这些值来配置迁移程序应用:

    显示 Azure 门户中Microsoft Entra 应用程序的屏幕截图。

  9. 导航到注册中的Manifest页面,并根据以下配置替换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"
          }
        ]
      }
    ]
    
  10. 保存更改。

将设备密钥添加到 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_IDREACT_APP_AAD_APP_TENANT_IDREACT_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 来查看工具。 出现提示时登录。

迁移设备

使用该工具批量迁移设备。 在 “新建迁移 ”页上输入迁移详细信息:

  1. 输入迁移的名称。
  2. 从 IoT Central 应用程序选择设备组。
  3. 选择包含 DeviceMove 命令定义的设备模板。
  4. 选择 “移动到自己的 Azure IoT 中心”。
  5. 选择链接到目标 IoT 中心的 DPS 实例。
  6. 选择“迁移”。 该工具会提示将密钥从 IoT Central 应用程序复制到 DPS 注册组。 之前在 “将设备密钥添加到 DPS ”步骤中完成了此步骤。

迁移工具的屏幕截图,其中显示了迁移定义。

该工具现在注册与目标 IoT 中心的目标设备筛选器匹配的所有已连接设备。 然后,该工具会在 IoT Central 应用程序中创建一个作业,以在所有设备上调用 DeviceMove 方法。 命令有效负载包含目标 DPS 实例的 ID 范围。

验证迁移

使用迁移程序工具中的 “迁移状态 ”页监视进度:

显示工具中迁移状态页的屏幕截图。

“迁移状态 ”页上选择一个作业,以查看 IoT Central 应用程序中的 作业状态 。 使用此页可以查看作业中各个设备的状态:

显示 IoT Central 作业已完成迁移状态的屏幕截图。

成功迁移的设备:

  • 在 IoT Central 应用程序的“设备”页上显示为 “已断开连接 ”。

  • 在 IoT 中心显示为“已注册”和“已预配”:

    Azure 门户中 IoT 中心的屏幕截图,其中显示了预配的设备。

  • 现在正在向物联网中心发送遥测数据

    Azure 门户中 IoT 中心的屏幕截图,其中显示了已迁移设备的遥测指标。