在运行时在Data Factory管道中设置链接服务参数

时间:2019-01-07 14:12:32

标签: azure azure-data-factory azure-data-factory-2

如何在运行时将参数传递给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"
            }
        }
    }
}

2 个答案:

答案 0 :(得分:0)

我试图在Data Factory UI中对Azure Function Linked Service进行参数化,并得到与您相同的错误,因为参数输入框从未出现。

然后,我按照官方文档尝试对Azure SQL数据库链接服务进行参数化。

enter image description here

然后我对其进行测试,并按预期显示输入框。

enter image description here

我检查了文档并找到以下语句。

enter image description here

到目前为止,似乎ADF中的参数化功能仅支持数据存储,但是Azure函数属于Compute,不属于数据存储。(也许将来会支持)

enter image description here

您可以提交feedback或直接联系ADF团队进行验证。

答案 1 :(得分:0)

只是 UI 本身不支持它。但是您可以使用高级 JSON。 https://docs.microsoft.com/en-us/azure/data-factory/parameterize-linked-services enter image description here