使用Azure数据工厂从REST API获取数据

时间:2019-09-23 02:23:14

标签: python azure azure-data-factory

我正在尝试使用Azure Data Factory通过REST API从Pendo中获取数据。此活动的PYTHON代码为

import requests
url = "https://app.pendo.io/api/v1/aggregation"
data = "{\"response\":{\"mimeType\":\"application/json\"},\"request\":{\"pipeline\":[{\"source\":{\"guideEvents\":null,\"timeSeries\":{\"first\":\"1506977216000\",\"count\":-10,\"period\":\"dayRange\"}}}]}}"
headers = {
    'x-pendo-integration-key': "[add_your_pendo_int_key_here]",
    'content-type': "application/json"
}
response = requests.post(url, data = data, headers = headers)

如何通过Azure数据工厂定义代码的数据部分? 我已将content-type和x-pendo-integration-key放入其他标题中。

2 个答案:

答案 0 :(得分:0)

您可以使用HTTP连接器从HTTP端点检索数据。以下活动支持此HTTP连接器:

  • 使用受支持的源/接收器矩阵复制活动
  • 查询活动 您可以将数据从HTTP源复制到任何受支持的接收器数据存储。有关复制活动支持作为源和接收者的数据存储的列表,请see Supported data stores and formats

注意:要在数据工厂中配置HTTP连接器之前测试数据检索的HTTP请求,请了解有关标头和正文要求的API规范。您可以使用Postman或网络浏览器之类的工具进行验证。

https://docs.microsoft.com/en-us/azure/data-factory/connector-http

这是POST的示例自定义活动:

{
    "name": "HttpSourceDataInput",
    "properties": {
        "type": "HttpFile",
        "linkedServiceName": {
            "referenceName": "<HTTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "relativeUrl": "<relative url>",
            "requestMethod": "Post",
            "requestBody": "<body for POST HTTP request>"
        }
    }
}

您可以检查与ADF相关的示例here。也可以找到this作为其他参考。 希望对您有所帮助。

答案 1 :(得分:0)

问题解决了。 PYTHON代码的数据部分(不带\)放在Azure数据工厂的复制活动的请求正文中,请求方法为POST。