适用于:
Azure 数据工厂
Azure Synapse Analytics
本文介绍如何在 Azure 数据工厂和 Azure Synapse 管道中使用复制活动从 SharePoint Online 列表复制数据。 本文根据复制活动一文(其中大致介绍了复制活动)编写。
支持的功能
此 SharePoint Online 列表连接器支持以下功能:
| 支持的功能 | IR |
|---|---|
| 复制活动(源/-) | (1) (2) |
| 查找活动 | (1) (2) |
① Azure 集成运行时 ② 自承载集成运行时
如需可以用作源或接收器的数据存储的列表,请参阅支持的数据存储表。
具体而言,此 SharePoint Online 列表连接器使用服务主体身份验证,并通过 OData 协议检索数据。
提示
此连接器支持从 SharePoint Online 列表而不是文件复制数据。 通过从 SharePoint Online 复制文件部分了解如何复制文件。
开始
若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:
使用 UI 创建指向 SharePoint Online 列表的链接服务
使用以下步骤在 Azure 门户 UI 中创建一个到 SharePoint Online 列表的链接服务。
浏览到 Azure 数据工厂或 Synapse 工作区中的“管理”选项卡,并选择“链接服务”,然后单击“新建”:
搜索 SharePoint 并选择 SharePoint Online 列表连接器。
配置服务详细信息、测试连接并创建新的链接服务。
连接器配置详细信息
对于特定于 SharePoint Online 列表连接器的实体,以下部分提供了可用于定义这些实体的属性的详细信息。
链接服务属性
SharePoint Online 列表链接的服务支持以下属性:
| 属性 | 说明 | 必需 |
|---|---|---|
| 类型 | type 属性必须设置为:SharePointOnlineList。 | 是 |
| siteUrl | SharePoint Online 网站 URL,例如 https://contoso.sharepoint.com/sites/siteName。 |
是 |
| servicePrincipalId | 在 Microsoft Entra ID 中注册的应用程序的应用程序(客户端)ID。 | 是 |
| 服务主体凭据类型 | 指定要用于服务主体身份验证的凭据类型。 允许的值为 ServicePrincipalCert 和 ServicePrincipalKey。 |
否 |
| 适用于 ServicePrincipalCert | ||
| servicePrincipalEmbeddedCert | 指定在 Microsoft Entra ID 中注册的应用程序的 Base64 编码证书,并确保证书内容类型为 PKCS #12。 请将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure 密钥保管库 中的机密。 需要配置引用此文章的权限设置。 | 否 |
| 服务主体嵌入式证书密码 | 如果使用密码保护证书,请指定证书的密码。 请将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure 密钥保管库 中的机密。 | 否 |
| tenantId | 应用程序所在的租户 ID。 | 是 |
| connectVia | 用于连接到数据存储的 集成运行时。 如果未指定,则使用默认 Azure Integration Runtime。 | 否 |
注意
如果你使用基于Azure ACS(访问控制 Services)的服务主密钥认证,请根据ACS退休计划切换到服务主密钥认证。
示例:使用服务主体证书认证
{
"name": "SharePointOnlineList",
"properties": {
"type": "SharePointOnlineList",
"typeProperties": {
"siteUrl": "<site URL>",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalCert",
"servicePrincipalEmbeddedCert": {
"type": "SecureString",
"value": "<base64 encoded string of (.pfx) certificate data>"
},
"servicePrincipalEmbeddedCertPassword": {
"type": "SecureString",
"value": "<password of your certificate>"
},
"tenantId": "<tenant ID>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
授予使用服务主体证书的许可
SharePoint Online 列表连接器使用服务主体身份验证连接到 SharePoint。 请按照以下步骤进行设置:
生成自签名证书,并导出公证书和证书(包括其私钥)。 想了解如何操作,请参见 创建自签名的公共证书以认证您的申请。
将应用程序注册到 Microsoft 标识平台。 想了解如何操作,请参见“在 Microsoft 标识平台 注册应用”。 记下以下值,这些值用于定义链接服务:
- 应用程序 ID
- 租户 ID
将公开证书上传到 证书与秘密中。
选择用于 API 权限 的 添加权限。
选择 SharePoint 以选择 API。
选择“应用程序权限”。
选择 Sites.Read.All 以选择 权限。
选择添加权限。
选择“授予管理员同意权限”。
选择 “是” 以确认 授予管理员同意。
数据集属性
有关可用于定义数据集的各部分和属性的完整列表,请参阅数据集和链接服务。 以下部分提供 SAP 表数据集支持的属性列表。
| 属性 | 描述 | 必填 |
|---|---|---|
| 类型 | 数据集的 type 属性必须设置为 SharePointOnlineLResource。 | 是 |
| listName | SharePoint Online 列表的名称。 文件名中不允许使用撇号 (')。 | 是 |
示例
{
"name": "SharePointOnlineListDataset",
"properties":
{
"type": "SharePointOnlineListResource",
"linkedServiceName": {
"referenceName": "<SharePoint Online List linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties":
{
"listName": "<name of the list>"
}
}
}
复制活动属性
有关可用于定义活动的各个部分和属性的完整列表,请参阅管道。 以下部分提供 SharePoint Online 列表源支持的属性列表。
作为源的 SharePoint Online 列表
若要从 SharePoint Online 列表复制数据,复制活动“源”部分支持以下属性:
| 属性 | 描述 | 必填 |
|---|---|---|
| 类型 | 复制活动源的 type 属性必须设置为“SharePointOnlineListSource”。 | 是 |
| 查询 | 用于筛选数据的自定义 OData 查询选项。 示例:"$top=10&$select=Title,Number"。 |
否 |
| httpRequestTimeout | HTTP 请求获取响应的超时时间(以秒为单位)。 默认值为 300(5 分钟)。 | 否 |
示例
"activities":[
{
"name": "CopyFromSharePointOnlineList",
"type": "Copy",
"inputs": [
{
"referenceName": "<SharePoint Online List input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "SharePointOnlineListSource",
"query": "<OData query e.g. $top=10&$select=Title,Number>"
},
"sink": {
"type": "<sink type>"
}
}
}
]
注意
对于 SharePoint Online 列表源,无法选择多个 choice 数据类型。
SharePoint Online 列表数据类型映射
从 SharePoint Online 列表复制数据时,在 SharePoint Online 列表数据类型和此服务在内部使用的临时数据类型之间使用以下映射。
| SharePoint Online 数据类型 | OData 数据类型 | 中间数据类型 |
|---|---|---|
| 单行文本 | Edm.String | 字符串 |
| 多行文本 | Edm.String | 字符串 |
| 选项(可供选择的菜单) | Edm.String | 字符串 |
| 数字(1、1.0、100) | Edm.Double | Double |
| 货币($、¥、€) | Edm.Double | Double |
| 日期和时间 | Edm.DateTime | 日期时间 |
| 查找(本网站上已有的信息) | Edm.Int32 | Int32 |
| 是/否(复选框) | Edm.Boolean | 布尔 |
| 个人或团体 | Edm.Int32 | Int32 |
| 超链接或图片 | Edm.String | 字符串 |
| 已计算(基于其他列计算) | Edm.String/Edm.Double/Edm.DateTime/Edm.Boolean | 字符串/Double/DateTime/Boolean |
| 附件 | 不支持 | |
| 任务结果 | 不支持 | |
| 外部数据 | 不支持 | |
| 托管元数据 | 不支持 |
从 SharePoint Online 复制文件
您可以使用 Web 活动 进行身份验证,并从 Microsoft Entra ID 获取访问令牌,以从 SharePoint Online 复制文件。 然后,将令牌传递给下一个 复制活动,通过 HTTP 连接器作为源来复制数据。
请按照“授予使用服务主体证书的权限”部分创建 Microsoft Entra 应用,并授予 Microsoft Graph 权限,而不是 SharePoint。
创建 Web 活动以从 SharePoint Online 获取访问令牌:
-
URL:
https://login.partner.microsoftonline.cn/[tenant-ID]/oauth2/v2.0/token. 替换租户 ID。 - 方法:POST
-
标头:
- 内容类型:application/x-www-form-urlencoded
-
正文:
client_id=[Client-ID]&scope=https%3A%2F%2Fmicrosoftgraph.chinacloudapi.cn%2F.default&client_secret=[Client-Secret]&grant_type=client_credentials。 替换客户端ID(应用ID)和客户端秘密(应用密钥)。
注意
在 Web 活动中,将“安全输出”选项设置为 true,以防止令牌值以纯文本格式记录。 使用此值的任何其他活动都应将其“安全输入”选项设置为 true。
-
URL:
将以 HTTP 连接器为源的 复制活动 串联起来,以复制 SharePoint Online 文件内容:
- HTTP 链接服务:
-
基础 URL:
https://microsoftgraph.chinacloudapi.cn/v1.0/sites/{Your-Site-ID}/drives/{Drive-ID}/root:/{path to file}:/content。 替换站点ID、驱动器ID和文件的相对路径。 想了解如何获取驱动器ID,请参见 “可用驱动器列表”。 或者,你也可以从@microsoft.graph.downloadUrlDriveItem对象的属性中获取直接下载URL,并使用该URL。 - 身份验证类型:匿名 (以便稍后使用在复制活动源中配置的持有者令牌)
-
基础 URL:
- 数据集:选择所需的格式。 若要按原样复制文件,请选择“二进制”类型。
- 复制活动源:
- 请求方法:GET
-
附加标头:使用以下表达式
@{concat('Authorization: Bearer ', activity('<Web-activity-name>').output.access_token)},该表达式使用上游 Web 活动生成的 Bearer 令牌作为授权标头。 替换 Web 活动名称。
- 为任何受支持的接收器目标配置复制活动接收器。
- HTTP 链接服务:
注意
即使 Microsoft Entra 应用程序具有对 SharePoint Online 的 FullControl 权限,也不能从启用了 IRM 的文档库中复制文件。
查找活动属性
若要了解有关属性的详细信息,请查看 Lookup 活动。
相关内容
有关复制活动支持作为源和接收器的数据存储的列表,请参阅支持的数据存储和格式。