You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Data Factory读取同Git仓库CSV文件遇阻及相关问题咨询

问题解决方案

1. RestService活动解析CSV报错的解决方法

RestService活动默认会将响应当作JSON格式解析,要处理CSV需调整两处配置:

  • 编辑Rest服务链接:进入连接选项卡的高级设置,将内容类型设为text/csv或application/csv。
  • 配置复制活动源:在复制活动的源设置中,将格式选择为CSV,并根据文件实际情况配置分隔符、引号字符、首行是否为标题等参数。

2. HTTP Service活动使用Service Principal Key认证的实现方式

HTTP Service活动本身没有直接提供SP密钥认证选项,需手动实现OAuth2令牌获取流程:

  • 添加Web活动,调用Azure AD令牌端点:https://login.microsoftonline.com/{你的租户ID}/oauth2/v2.0/token
    • 请求方法选POST,请求头设置Content-Type: application/x-www-form-urlencoded
    • 请求体参数:
      grant_type=client_credentials
      client_id={你的SP客户端ID}
      client_secret={你的SP密钥}
      scope={Git仓库对应的API权限范围,例如Azure DevOps用499b84ac-1321-427f-aa17-267ca6975798/.default}
      
  • 在后续的HTTP Service活动中,添加请求头Authorization: Bearer @{activity('Web活动名称').output.access_token},以此完成SP认证。

3. 读取同仓Git中CSV文件的更简便方案

方案一:Azure DevOps Pipeline自动同步

若Git仓库为Azure DevOps托管,可配置DevOps Pipeline:

  • 当CSV文件发生变更时自动触发Pipeline,通过Azure CLI或PowerShell将文件上传至Blob存储,之后ADF按原有流程读取Blob即可。

方案二:Azure Function中间层

创建Azure Function,通过SP认证访问Git仓库(支持Azure DevOps/GitHub等平台),读取目标CSV文件内容后直接写入Blob存储或返回给ADF。ADF只需调用该Function即可完成文件获取,无需复杂的API调用配置。

方案三:直接调用Git API

以Azure DevOps为例,用Web活动调用https://dev.azure.com/{组织名}/{项目名}/_apis/git/repositories/{仓库ID}/items?path={CSV文件路径}&api-version=7.1-preview.1,通过前面提到的SP令牌认证,获取文件内容后写入Blob存储。

内容的提问来源于stack exchange,提问作者Zeruno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 20:26:06