【发布时间】:2019-02-28 00:01:16
【问题描述】:
当我尝试在基于 Azure 函数(HTTP 触发器)的 Azure 数据工厂中创建数据集 (HTTP) 时,我不断收到连接超时:
The cloud service request timed out. Please retry. Activity ID:9d70efcd-c842-4484-9313-4872208a2a9e
但是,如果我从其他任何地方调用函数,例如来自apitester.com,我得到了想要的回应:
- 请求网址:https://srf-scadapa-fa2-windows.azurewebsites.net/api/HttpTriggerPython32?code=L5WVNJh8loDv3mZFcD/AKatNRoYfYoHlDbEBk4AEGrbDA39ddAXsyg==
- 请求方式:post
- 请求正文:{“group_name”:“Azure POC”}
-
响应正文:
{"timestamp":"2018-09-24 14:23:42","python_version":"3.5.4 (v3.5.4:3f56838, Aug 8 2017, 02:17:05) [MSC v. 1900 64 位 (AMD64)]"}
函数HttpTriggerPython32的源码如下:
import os, sys, json
from datetime import datetime
postreqdata = json.loads(open(os.environ['req']).read())
responseData = {
'timestamp' : datetime.now(pytz.timezone("Europe/Zurich")).strftime("%Y-%m-%d %H:%M:%S"),
'python_version' : sys.version
}
response = open(os.environ['res'], 'w')
response.write(str(responseData))
我已成功将其他第 3 方 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”配置如下:
- 通过集成运行时连接:AutoResolveIntegrationRuntime
- 基本网址:https://srf-scadapa-fa2-windows.azurewebsites.net/api/
- 服务器证书验证:错误
- 认证类型:匿名
【问题讨论】:
-
您是否为您的 Http 活动尝试过不同的超时值? docs.microsoft.com/en-us/azure/data-factory/….
-
我对 Azure 数据工厂不是很熟悉(我是 Functions 团队的一员),但是您的链接服务是否可能因为基本 URL 返回 404 而出现问题?也许尝试将您的基本 URL srf-scadapa-fa2-windows.azurewebsites.net 并相应地编辑您的相对 URL?
-
@ConnorMcMahon 谢谢,我设法使用复制活动中的超时设置参数解决了这个问题
标签: python azure azure-functions azure-data-factory-2