使用Azure数据工厂从HTTPS Web服务读取API数据

时间:2019-12-30 11:13:47

标签: azure-data-factory azure-data-lake azure-data-factory-2

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

问题: 我能够从API读取令牌ID,但无法读取实际数据,这意味着必须使用令牌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": []

}

我很抱歉,如果有人不理解该问题,我可以清楚地发布。 谢谢,

1 个答案:

答案 0 :(得分:0)

根据您的描述,我认为您可以使用WehHook Activity而不是“网络活动”。

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

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


更新:

最后,OP选择数据块作为解决方案,并且运行正常。