[英]Azure Data Factory HTTP Dataset using Python SDK , unable to find parameters
[英]How to use an Azure Function (Python) as a HTTP dataset in an Azure Data Factory
嘗試在基於Azure函數(HTTP觸發器)的Azure數據工廠中創建數據集(HTTP)時,我一直保持連接超時:
The cloud service request timed out. Please retry. Activity ID:9d70efcd-c842-4484-9313-4872208a2a9e
但是,如果我從其他地方(例如apitester.com)調用函數, 則會得到所需的響應:
響應主體:
{“ timestamp”:“ 2018-09-24 14:23:42”,“ python_version”:“ 3.5.4(v3.5.4:3f56838,2017年8月8日,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))
我已經成功將其他第三方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”的配置如下:
Azure Functions(以及幾乎所有無服務器平台)必須處理冷啟動延遲問題,在此問題中,一段時間不使用后對功能應用程序的第一次請求將花費更長的時間。 這是因為平台需要在處理請求之前實例化應用程序的實例。 這會給請求增加不平凡的時間,這可能會增加您的延遲,超過Azure Data Lake的默認超時所允許的延遲。
根據Azure Data Factory的文檔 ,以HTTP為源的復制活動具有超時字段。 將其配置為更高的值可能會解決此問題。
手動定義源的所有列並增加復制活動中的超時可以解決該問題。
我使用的是Data Factory GUI,無法為預覽源或導入架構設置超時。 因此,在這種特殊情況下,“導入模式”功能根本不起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.