如何在运行时将参数传递给Data Factory中的链接服务?
我在Azure函数链接服务定义中定义并使用了一个参数,但是不确定如何在管道操作的调用期间设置该参数。在这种情况下,我想在触发器中设置functionAlias来设置Azure Function主机名。当前,(blob创建)触发器返回了一个异常,指出未指定functionAlias。
管道
{
"name": "myActivity",
"type": "AzureFunctionActivity",
"typeProperties": {
"functionName": "myFunctionName",
"method": "POST"
}
"linkedServiceName": {
"referenceName": "myFunctionLinkedService",
"type": "LinkedServiceReference"
}
}
链接服务
{
"name": "myFunctionLinkedService",
"type": "Microsoft.DataFactory/factories/linkedservices",
"properties": {
"type": "AzureFunction",
"typeProperties": {
"functionAppUrl": "https://@{linkedService().functionAlias}.azurewebsites.net",
"encryptedCredential": ""
},
"parameters": {
"functionAlias": {
"type": "String"
}
}
}
}
答案 0 :(得分:0)
我试图在Data Factory UI中对Azure Function Linked Service进行参数化,并得到与您相同的错误,因为参数输入框从未出现。
然后,我按照官方文档尝试对Azure SQL数据库链接服务进行参数化。
然后我对其进行测试,并按预期显示输入框。
我检查了文档并找到以下语句。
到目前为止,似乎ADF中的参数化功能仅支持数据存储,但是Azure函数属于Compute
,不属于数据存储。(也许将来会支持)
您可以提交feedback或直接联系ADF团队进行验证。
答案 1 :(得分:0)
只是 UI 本身不支持它。但是您可以使用高级 JSON。 https://docs.microsoft.com/en-us/azure/data-factory/parameterize-linked-services