Terraform中能否复用for循环输出?Databricks实例池代码简化咨询
解决Terraform中Databricks实例池及权限的冗余代码问题
完全可以通过两个循环资源实现该需求,你当前的代码存在权限资源未与实例池一一绑定的问题,直接使用列表形式的ID会导致配置错误。修正后的代码如下:
# 循环创建实例池 resource "databricks_instance_pool" "pool_size" { for_each = { for pool in var.instance_pool : pool.name => pool } instance_pool_name = each.value.name min_idle_instances = each.value.min_instances max_capacity = each.value.max_instances node_type_id = each.value.node_type } # 循环为每个实例池配置关联权限 resource "databricks_permissions" "can_attach_pool" { for_each = databricks_instance_pool.pool_size instance_pool_id = each.value.id access_control { group_name = "users" permission_level = "CAN_ATTACH_TO" } }
核心修正点说明:
- 实例池资源:原代码直接使用
pool.name引用属性错误,需改为each.value.name来获取当前循环项的对应属性,确保遍历逻辑正确。 - 权限资源:通过复用实例池资源的
for_each集合,让每个实例池自动对应生成一条权限配置,each.value.id精准绑定对应实例池的ID,实现权限与实例池的一一关联,彻底消除冗余代码。
内容的提问来源于stack exchange,提问作者Volturyon
相关产品推荐
相关产品推荐

