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

如何在Kusto中创建集群级函数GetCurrentEnvironmentDatabase?

创建集群级函数GetCurrentEnvironmentDatabase的具体方法

前置条件确认

  • 已完成ConfigDB数据库及EnvironmentConfig映射表的创建和数据导入(你提供的表创建与数据 ingestion 语句已满足要求)。
  • 执行操作的账号需具备集群的Database Admin或Function Admin权限,否则无法创建集群级函数。

步骤1:执行集群级函数创建命令

在集群根级别的查询窗口(不要进入某个具体数据库,直接在集群的查询界面)运行以下Kusto命令:

.create-or-alter function with (skipvalidation = "true") 
GetCurrentEnvironmentDatabase(env:string)
   {
      let db = toscalar(
          ConfigDB.EnvironmentConfig
          | where Environment == env
          | project DatabaseName
      );
      db
   }

步骤2:验证函数可用性

在集群内任意数据库的查询窗口中,调用函数测试返回结果:

// 测试Dev环境映射
print targetDB = GetCurrentEnvironmentDatabase("Dev")
// 测试PreProd环境映射
print targetDB = GetCurrentEnvironmentDatabase("PreProd")
// 测试Prod环境映射
print targetDB = GetCurrentEnvironmentDatabase("Prod")

执行后应分别返回DevDB、PreProdDB、ProdDB,说明函数创建成功且可正常工作。

关键细节说明

  • 集群级函数特性:该函数属于集群级别,无需添加数据库前缀即可在集群内所有数据库中直接调用,满足你通过环境名便捷操作对应数据库的需求。
  • skipvalidation参数的作用:由于函数中引用了ConfigDB,创建时如果不设置skipvalidation = "true",Kusto会检查默认调用上下文是否能访问ConfigDB,而集群级函数的上下文未绑定具体数据库,因此会触发验证报错,添加该参数可跳过这一验证。
  • 映射逻辑的灵活性:后续若需新增环境或修改数据库名,只需更新ConfigDB.EnvironmentConfig表中的数据,无需修改函数代码,维护成本低。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:24:58