0

我最初在 AzureDataExplorer 类型的 ADFv2 中成功创建了以下链接服务,用于访问 ADX 中名为 CustomerDB 的数据库:-

{
"name": "ls_AzureDataExplorer",
"properties": {
    "type": "AzureDataExplorer",
    "annotations": [],
    "typeProperties": {
        "endpoint": "https://mycluster.xxxxmaskingregionxxxx.kusto.windows.net",
        "tenant": "xxxxmaskingtenantidxxxx",
        "servicePrincipalId": "xxxxmaskingspxxxx",
        "servicePrincipalKey": {
            "type": "AzureKeyVaultSecret",
            "store": {
                "referenceName": "ls_AzureKeyVault_MyKeyVault",
                "type": "LinkedServiceReference"
            },
            "secretName": "MySecret"
        },
        "database": "CustomerDB"
    }
},
"type": "Microsoft.DataFactory/factories/linkedservices"

}

这工作顺利。由于显而易见的原因,我不得不掩盖一些值,但只是想说这种连接没有问题。现在受此 Microsoft文档的启发,我正在尝试创建此链接服务的通用版本,这是有道理的,因为否则如果集群中有 10 个数据库,我将不得不创建 10 个不同的链接服务。

所以我尝试通过以下方式创建参数化版本:-

{
"name": "ls_AzureDataExplorer_Generic",
"properties": {
    "type": "AzureDataExplorer",
    "annotations": [],
    "typeProperties": {
        "endpoint": "https://mycluster.xxxxmaskingregionxxxx.kusto.windows.net",
        "tenant": "xxxxmaskingtenantidxxxx",
        "servicePrincipalId": "xxxxmaskingspxxxx",
        "servicePrincipalKey": {
            "type": "AzureKeyVaultSecret",
            "store": {
                "referenceName": "ls_AzureKeyVault_MyKeyVault",
                "type": "LinkedServiceReference"
            },
            "secretName": "MySecret"
        },
        "database": "@{linkedService().DBName}"
    }
},
"type": "Microsoft.DataFactory/factories/linkedservices"

}

但是在发布更改时,我不断收到以下错误:-

在此处输入图像描述

有什么解决办法吗?

文章清楚地说:-

对于所有其他数据存储,您可以通过选择“连接”选项卡上的“代码”图标并使用 JSON 编辑器来参数化链接服务

因此,根据我的更改应该已成功发布。但我不断收到错误。

4

1 回答 1

0

看来我需要在同一个 JSON 的其他地方指定参数。以下工作: -

{ 
"name": "ls_AzureDataExplorer_Generic",
"properties": {
    "parameters": {
                "DBName": {
                    "type": "string"
                }
            },
    "type": "AzureDataExplorer",
    "annotations": [],
    "typeProperties": {
        "endpoint": "https://mycluster.xxxxmaskingregionxxxx.kusto.windows.net",
        "tenant": "xxxxmaskingtenantidxxxx",
        "servicePrincipalId": "xxxxmaskingspxxxx",
        "servicePrincipalKey": {
            "type": "AzureKeyVaultSecret",
            "store": {
                "referenceName": "ls_AzureKeyVault_MyKeyVault",
                "type": "LinkedServiceReference"
            },
            "secretName": "MySecret"
        },
        "database": "@{linkedService().DBName}"
    }
},
"type": "Microsoft.DataFactory/factories/linkedservices"
}
于 2019-11-25T13:11:47.460 回答