如何在数据工厂中为 Databricks 现有集群 ID 使用参数?
How to use parameter for Databricks existing cluster id in Data Factory?
对于某些背景,我在开发 Azure 数据工厂工作,我在其中使用生成的 ARM 模板部署到其他 test/prod 环境。
我遇到的问题是在我的 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"
}
Databricks Linked Service
默认情况下只有某些字段被参数化。但是您可以设置模板来自定义它们。它不是很漂亮 - 完整指南在这里:https://docs.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment#use-custom-parameters-with-the-resource-manager-template
对于您的示例,我有一个如下所示的模板:
{
"Microsoft.DataFactory/factories/linkedServices": {
"*": {
"properties": {
"typeProperties": {
"existingClusterId": "="
}
}
}
}
}
该文件必须命名为 arm-template-parameters-definition。json 并放置在您的存储库的根目录中。
对于某些背景,我在开发 Azure 数据工厂工作,我在其中使用生成的 ARM 模板部署到其他 test/prod 环境。
我遇到的问题是在我的 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"
}
Databricks Linked Service
默认情况下只有某些字段被参数化。但是您可以设置模板来自定义它们。它不是很漂亮 - 完整指南在这里:https://docs.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment#use-custom-parameters-with-the-resource-manager-template
对于您的示例,我有一个如下所示的模板:
{
"Microsoft.DataFactory/factories/linkedServices": {
"*": {
"properties": {
"typeProperties": {
"existingClusterId": "="
}
}
}
}
}
该文件必须命名为 arm-template-parameters-definition。json 并放置在您的存储库的根目录中。