如何将Azure函数(Python)用作Azure数据工厂中的HTTP数据集

2024-09-30 04:29:49 发布

您现在位置:Python中文网/ 问答频道 /正文

当我尝试在基于Azure函数(HTTP触发器)的Azure数据工厂中创建数据集(HTTP)时,我会不断获取连接超时:

  The cloud service request timed out. Please retry. Activity ID:9d70efcd-c842-4484-9313-4872208a2a9e

但是,如果我从其他任何地方调用函数,例如从apitester.com调用函数,则会得到所需的响应:

函数HttpTriggerPython32的源代码如下:

^{pr2}$

我已经成功地在数据工厂中添加了其他第三方HTTP服务作为数据集。另外,我还通过一个Web活动成功地调用了函数。 只有当我试图将函数用作数据集源时才会发生错误。在

为了将函数添加为数据工厂数据集,我创建了一个具有以下参数的新数据集:

{
    "name": "HttpFile1",
    "properties": {
        "linkedServiceName": {
            "referenceName": "AF_srfscadapa_af1",
            "type": "LinkedServiceReference"
        },
        "type": "HttpFile",
        "typeProperties": {
            "format": {
                "type": "JsonFormat",
                "filePattern": "setOfObjects"
            },
            "relativeUrl": "HttpTriggerPython32?code=L5WVNJh8loDv3mZFcD/AKatNRoYfYoHlDbEBk4AEGrbDA39ddAXsyg==",
            "requestMethod": "Post",
            "requestBody": "{\n    \"group_name\": \"Azure POC\"\n}"
        }
    }
}

链接服务“AF_srfscadapa_af1”配置如下:


Tags: 数据函数namehttpshttpurlwindows工厂
2条回答

Azure函数(以及几乎所有的无服务器平台)必须处理冷启动延迟问题,即在一段时间不使用后向函数应用程序发出的第一个请求需要更长的时间。这是因为平台需要在服务请求之前实例化应用程序的实例。这会给请求增加大量的时间,这可能会使您的延迟超过azuredatalake的默认超时所允许的时间。在

根据documentation for Azure Data Factory,以HTTP为源的复制活动有一个超时字段。将其配置为更高的值可以解决此问题。在

手动定义源代码的所有列并在复制活动中增加超时时间,解决了这个问题。在

我使用的是数据工厂图形用户界面,在那里无法设置预览源代码或导入模式的超时。所以在这个特殊的例子中,“importschema”函数根本不起作用。在

相关问题 更多 >

    热门问题