首页 > 解决方案 > 使用 Azure 数据工厂从 HTTPS Web 服务读取 API 数据

问题描述

我正在尝试从 Web 服务 API 摄取数据,源是 XML 格式,因为 Azure 数据工厂不支持 XML 格式,我正在以二进制格式读取它,加载到 Azure 数据湖 gen2,然后使用 Azure Databricks 转换为 xml、csv。

问题:我能够从 API 读取 tokenid,但不能读取实际数据,这意味着使用 token id 我必须获取实际数据。任何人都可以帮助解决这个问题。注意:使用 HTTP 链接服务来摄取数据。所有连接器都很好,测试连接成功。以下是我可以从 ADF 看到的错误消息。

"errorCode": "2200",
"message": "Failure happened on 'Sink' side. ErrorCode=UserErrorFailedToReadHttpFile,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=The remote server returned an error: (500) Internal Server Error.,Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Net.WebException,Message=The remote server returned an error: (500) Internal Server Error.,Source=System,'",
"failureType": "UserError",
"target": "Copy data1",
"details": []

}

如果有人不明白这个问题,我很抱歉,我可以清楚地发布。谢谢,

标签: azure-data-factoryazure-data-lakeazure-data-factory-2

解决方案


根据您的描述,我认为您可以使用WehHook Activity,而不是 Web Activity。

使用 WehHook 活动,您可以调用端点并传递回调 URL。管道运行等待回调被调用,然后再继续下一个活动。

实际步骤是将正文中的附加属性“callBackUri”(摄取数据 API)传递给 url 端点(获取令牌 API),并期望在指定的超时值之前调用此 uri。


更新:

最后,OP 选择了 databricks 作为解决方案,它工作正常。


推荐阅读