如何向解析文件添加连接

若要将 Azure 数据工厂(ADF)管道迁移到 Microsoft Fabric,可以使用 基于 PowerShell 的 FabricUpgrader 工具。 该工具可自动执行大部分迁移,但使用名为解析文件的 JSON 文件在 Azure 数据工厂链接服务和 Microsoft Fabric 连接之间进行映射。

本文是一份关于创建分辨率文件以及排查相关问题的指南,内容包括:

基本分辨率文件

解析文件的基本结构为:

[
  {
    "type": "LinkedServiceToConnectionId",
    "key": "<ADF LinkedService Name>",
    "value": "<Fabric Connection ID>"
  }
]

例如,如果有两个名为 MyAzureBlobStorageMySQLServer 的 ADF 链接的服务,并希望将其映射到 Fabric 连接,那么,你的文件应如下所示:

[
  {
    "type": "LinkedServiceToConnectionId",
    "key": "MyAzureBlobStorage",
    "value": "aaaa0000-bb11-2222-33cc-444444dddddd"
  },
  {
    "type": "LinkedServiceToConnectionId",
    "key": "MySQLServer",
    "value": "bbbb1111-cc22-3333-44dd-555555eeeeee"
  }
]

使用此结构创建 Resolutions.json 文件,并将其保存在计算机上的某个位置,以便 PowerShell 可以访问该文件。

分辨率类型

在解析条目中可以使用三 type 个条目,具体取决于管道和连接:

  • LinkedServiceToConnectionId - 最常见的映射,用于将 ADF LinkedService 映射到 Fabric 连接。 按照 获取连接的 GUID 中的步骤创建映射。
    • key此类型值是 Azure 数据工厂链接服务名称。
  • CredentialConnectionId - 用于调用其他管道的 ADF ExecutePipeline 活动。 请按照 CredentialConnectionId 条目指南 来创建用于添加这些活动的凭据。
    • key此类型的值为“user”。
  • UrlHostToConnectionId - 用于 ADF Web 和 WebHook 活动。 按照 UrlHostToConnectionId 条目指南,先创建正确的连接,然后更新解析项。
    • key此类型的值为连接的主机名。

获取连接的 GUID

若要获取 Fabric 连接的 GUID,请添加到 LinkedServiceToConnectionId 条目:

  1. 在 Fabric 中打开数据工厂工作区。

  2. 选择右上角的齿轮图标,然后选择“ 管理连接和网关”。

    “设置”菜单下的“管理连接和网关”链接的屏幕截图。

  3. 如果 Fabric 中尚不存在连接,请创建一个新连接。

    添加新云连接的屏幕截图。

    小窍门

    在故障情况下,请使用警报中的 connectionHint 来选择正确的连接类型和数据源。

  4. 如果已建立连接,或者创建连接后,请将鼠标悬停在连接名称旁边的省略号按钮上以显示菜单。

  5. 从弹出菜单中选择 “设置 ”。

    连接设置的屏幕截图。

  6. 在设置窗格中,复制 连接 ID

    如何获取 Fabric 连接 ID 的屏幕截图。

  7. 使用 Azure 数据工厂链接服务名称和复制的连接 ID 更新此解析条目模板:

    {
        "type": "LinkedServiceToConnectionId",
        "key": "<ADF LinkedService Name>",
        "value": "<Fabric Connection ID>"
    }
    

    小窍门

    解决失败警报包括可以复制和修改的模板。 请参阅 解析失败警报的示例及其用法 以获取详细信息。

  8. 将对象添加到 Resolutions.json。 例如:

    [
       ...,
       {
          "type": "LinkedServiceToConnectionId",
          "key": "mysqlls",
          "value": "aaaa0000-bb11-2222-33cc-444444dddddd"
       }
    ]
    

CredentialConnectionId 条目

如果计划升级 ADF ExecutePipeline 活动,请将 CredentialConnectionId 添加到解决方案中。

  1. 在 Fabric 工作区中,选择右上角的齿轮图标,然后选择 “管理连接和网关”。

    “设置”菜单下的“管理连接和网关”链接的屏幕截图。

  2. 转到“ 连接 ”选项卡,选择屏幕顶部的“ + 新建 ”:

    添加新连接的屏幕截图。

  3. 在“ 新建连接 ”窗格中:

    • 输入连接的名称。
    • 选择 结构管道 作为连接类型。
    • 选择 OAuth 2.0 作为身份验证方法。

    复制凭据连接 ID 的屏幕截图。

  4. 选择“编辑凭据

  5. 浏览器窗口打开时,选择帐户。

  6. 在“ 新建连接 ”窗格中,选择“ 创建”。

    添加新凭据连接的屏幕截图。

  7. 在“设置”窗格中,复制连接 ID。

    获取解析文件中要使用的连接 ID 的屏幕截图。

  8. 将此对象添加到 Resolutions.json,将值替换为复制的 GUID:

    {
      "type": "CredentialConnectionId",
      "key": "user",
      "value": "<GUID of your Credential Connection>"
    }
    

    例如:

    [
       ...,
       {
          "type": "CredentialConnectionId",
          "key": "user",
          "value": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
       }
    ]
    

UrlHostToConnectionId 条目

在 Azure 数据工厂中,Web 和 WebHook 活动包括完整的 URL。 Fabric 的工作方式有所不同:Fabric 使用连接和相对网址。 目前,升级程序仅将主机名替换为连接 ID。 例如:连接至 https://contoso.com 加上相对 URL /admin/organize。 我们将条目添加到解析文件,以便在迁移过程中正确映射连接。

  1. 选择右上角的齿轮图标,然后选择“ 管理连接和网关”。

    “设置”菜单中突出显示的“管理连接和网关”链接的屏幕截图。

  2. 转到“ 连接 ”选项卡,然后选择“ + 新建”。

    添加新连接的屏幕截图。

  3. “新建连接 ”窗格中:

    • 输入连接的名称。
    • 选择 Web v2 作为连接类型。
    • 填写主机名和授权。
    • 选择 创建
  4. 在设置窗格中,复制连接 ID。

  5. 将此对象添加到 Resolutions.json,将值替换为复制的 GUID:

    {
      "type": "UrlHostToConnectionId",
      "key": "<Hostname from your Web or WebHook activity>",
      "value": "<GUID of your Credential Connection>"
    }
    

    例如,如果连接为 https://www.example.com:443/

    [
       ...,
       {
          "type": "UrlHostToConnectionId",
          "key": "https://www.example.com",
          "value": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
       }
    ]
    

示例警报及其用法

运行迁移时,如果迁移出现问题,警报可能会要求你添加解决方法。 该警报还告诉你要创建的连接类型,并提供一个模板,用于添加解决方案。 例如:

 {
    "state": "Failed",
    "alerts": [
      {
        "severity": "RequiresUserAction",
        "details": "Please use the hint and template to create/find a new connection and add its ID to your resolutions.",
        "connectionHint": {
          "linkedServiceName": "mysqlls",
          "connectionType": "AzureSqlDatabase",
          "datasource": "my-sql-server.database.windows.net",
          "template": {
            "type": "LinkedServiceToConnectionId",
            "key": "mysqlls",
            "value": "<Fabric Connection ID>"
          }
        }
      }
    ],
    "resolutions": [],
    "result": {}
  }

该警报的用途:

  1. 创建或查找 AzureSqlDatabase 类型的 Fabric 连接,该连接指向显示的数据源(例如,my-sql-server.database.windows.net)。

  2. 复制该连接的 ID。

  3. 在警报中,找到属于您的 template JSON 条目。 例如:

          "template": {
            "type": "LinkedServiceToConnectionId",
            "key": "mysqlls",
            "value": "<Fabric Connection ID>"
          }
    
  4. 使用模板将 Resolution 对象添加到 Resolutions.json,替换 <Fabric Connection ID> 为实际的 GUID。

    [
       ...,
       {
          "type": "LinkedServiceToConnectionId",
          "key": "mysqlls",
          "value": "aaaa0000-bb11-2222-33cc-444444dddddd"
       }
    ]