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

如何使用Local值为Azure Databricks User资源块配置用户参数

问题根因

你当前的代码直接将列表类型的local.name.display_name、local.name.user_name赋值给需要字符串类型参数的单实例资源,类型不匹配触发报错;且单资源块默认只能创建1个用户,需要添加循环逻辑批量创建2个用户。


实现方案

方案1:使用count适配现有local结构

不需要修改你现有的locals块,直接调整databricks_user资源块添加循环逻辑即可:

resource "databricks_user" "dbuser" {
  count            = length(local.name.display_name)
  display_name     = local.name.display_name[count.index]
  user_name        = local.name.user_name[count.index]
  workspace_access = true
}

注意:该方案依赖列表索引匹配用户属性,若后续调整用户列表顺序会触发已有资源的销毁重建,仅适合固定不变的短列表场景。


方案2:优化local结构+for_each(推荐)

先调整locals结构将用户属性配对,再用for_each循环创建资源,稳定性更高:

# 调整后的locals块
locals {
  users = [
    {
      display_name = "Vincent Casinha"
      user_name    = "vincent.casinha@contoso.com"
    },
    {
      display_name = "Susan Young"
      user_name    = "susan.young@contoso.com"
    }
  ]
}

# 调整后的databricks_user资源块
resource "databricks_user" "dbuser" {
  for_each         = { for user in local.users : user.user_name => user }
  display_name     = each.value.display_name
  user_name        = each.value.user_name
  workspace_access = true
}

该方案以用户邮箱作为唯一资源标识,后续调整用户列表顺序、增删用户都不会影响其他已有正常资源,是Terraform批量创建资源的官方最佳实践。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:36:03