You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Databricks交互式集群配置自定义成本追踪标签?

问题:ADF配置Databricks交互式集群自定义标签失败

我正在实施自定义标签以追踪Databricks作业的成本,已通过修改ADF JSON管道成功为作业集群添加标签,但在为交互式集群添加标签时遇到困难。尝试了下述配置方式,能看到组织强制的默认标签,但自定义标签未显示,以下是我使用的JSON Schema:

{
    "name": "Testing",
    "type": "DatabricksNotebook",
    "dependsOn": [],
    "policy": {
        "timeout": "0.12:00:00",
        "retry": 0,
        "retryIntervalInSeconds": 30,
        "secureOutput": false,
        "secureInput": false
    },
    "userProperties": [],
    "typeProperties": {
        "notebookPath": "/test/DB_test",
        "baseParameters": {
            "Team": "Football"
        }
    },
    "linkedServiceName": {
        "referenceName": "linkedserver_databricks",
        "type": "LinkedServiceReference"
    },
    "parameters": {
        "Team": "Cricket"
    }
}

解决方法

  • 交互式集群的标签无法直接在ADF Notebook活动的当前配置中设置,需通过以下几种方式实现:
    1. Databricks集群策略配置
      在Databricks控制台的集群策略中添加标签规则,策略JSON示例:

      {
        "custom_tags": {
          "Team": "Cricket"
        }
      }
      

      所有使用该策略创建的交互式集群会自动应用此自定义标签,若需动态值,可使用策略变量(如{{workspace.current_user.attributes.team}})。

    2. ADF链接服务配置
      修改Databricks链接服务的JSON定义,在typeProperties中添加customTags字段:

      "typeProperties": {
        "domain": "your-databricks-instance.databricks.azure.cn",
        "authentication": "MSI",
        "customTags": {
          "Team": "Cricket"
        }
      }
      

      此方式会让该链接服务关联的所有交互式集群统一带上标签,若需动态参数,可结合ADF管道参数传递。

    3. Notebook内动态设置(适合按需调整)
      在Notebook中通过Databricks API更新当前集群标签,Python代码示例:

      import requests
      import os
      
      cluster_id = os.environ.get("DB_CLUSTER_ID")
      api_url = f"{os.environ.get('DATABRICKS_HOST')}/api/2.0/clusters/edit"
      headers = {"Authorization": f"Bearer {os.environ.get('DATABRICKS_TOKEN')}"}
      
      payload = {
        "cluster_id": cluster_id,
        "custom_tags": {
          "Team": dbutils.widgets.get("Team")
        }
      }
      
      response = requests.post(api_url, json=payload, headers=headers)
      response.raise_for_status()
      

      这样可利用ADF传递的Team参数动态设置标签。

内容的提问来源于stack exchange,提问作者DevOps

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 14:21:19