Azure 如何在数据工厂中使用Databricks现有集群id的参数?

Azure 如何在数据工厂中使用Databricks现有集群id的参数?,azure,azure-devops,azure-data-factory,azure-databricks,Azure,Azure Devops,Azure Data Factory,Azure Databricks,对于某些背景,我在开发Azure数据工厂工作,在那里我使用生成的ARM模板部署到其他测试/产品环境 我遇到的问题是,在我的Azure Databricks链接服务中尝试引用现有群集id时。此群集id被传递到群集不存在的不同帐户中。中的链接服务在多个管道中使用,因此我希望能够在一个地方对其进行更改 我希望能够有一个参数,我可以在Azure DevOps发布管道期间覆盖该参数,以映射到正确的环境集群。但当数据工厂生成ARM模板时,我对它没有太多控制权 这是arm模板的一个示例 "name": "[c

对于某些背景,我在开发Azure数据工厂工作,在那里我使用生成的ARM模板部署到其他测试/产品环境

我遇到的问题是,在我的Azure Databricks链接服务中尝试引用现有群集id时。此群集id被传递到群集不存在的不同帐户中。中的链接服务在多个管道中使用,因此我希望能够在一个地方对其进行更改

我希望能够有一个参数,我可以在Azure DevOps发布管道期间覆盖该参数,以映射到正确的环境集群。但当数据工厂生成ARM模板时,我对它没有太多控制权

这是arm模板的一个示例

"name": "[concat(parameters('factoryName'), '/my-linked-service')]",
"type": "Microsoft.DataFactory/factories/linkedServices",
"apiVersion": "2018-06-01",
"properties": {
    "description": "Databricks connection",
    "parameters": {
        "test": {
            "type": "string"
        }
    },
    "annotations": [],
    "type": "AzureDatabricks",
    "typeProperties": {
        "domain": "https://australiaeast.azuredatabricks.net",
        "accessToken": {
            "type": "AzureKeyVaultSecret",
            "store": {
                "referenceName": "keyName",
                "type": "LinkedServiceReference"
            },
            "secretName": "secretName"
        },
        "existingClusterId": "1234-56789-abc123"
    }

默认情况下,只有某些字段被参数化。但是您可以设置一个模板来定制它们。它不是很漂亮-完整的指南在这里:

对于您的示例,我有一个如下所示的模板:

{
    "Microsoft.DataFactory/factories/linkedServices": {
        "*": {
            "properties": {
                "typeProperties": {
                    "existingClusterId": "="
                }
            }
        }
    }
}

该文件必须命名为arm-template-parameters-definition.json,并放在repo的根目录中。

这显然是可行的。它说:“您使用自动CI/CD,并且希望在资源管理器部署期间更改某些属性,但是默认情况下这些属性不是参数化的。”这正是我遇到的问题。我会试一试的,谢谢!