Terraform如何获取Azure AD组VaultUsers成员display_name并输出
Terraform获取Azure AD VaultUsers组成员显示名称方案
你需要将azuread_group数据源返回的组成员对象ID作为过滤条件传入azuread_users数据源,无需拉取全租户所有用户,即可精准提取组内成员的display_name字段,最终通过输出块返回结果。
可直接使用的完整配置(写入outputs.tf即可)
# 读取目标VaultUsers组的基础信息 data "azuread_group" "test_group" { display_name = "VaultUsers" } # 基于组成员对象ID精准筛选对应用户,不拉取全量租户用户 data "azuread_users" "vault_group_members" { object_ids = data.azuread_group.test_group.members } # 输出所有组成员的显示名称 output "vault_users_member_names" { value = data.azuread_users.vault_group_members.users[*].display_name description = "VaultUsers Azure AD组的所有成员显示名称列表" }
配置说明
- 替换掉你之前
return_all = true的全量用户拉取逻辑:全量拉取会遍历租户下所有用户,用户规模大时执行速度极慢,还可能触发Azure AD接口限流,精准按ID过滤的性能和稳定性更好 - 代码中
[*].display_name是Terraform的splat表达式,会自动遍历筛选得到的所有用户对象,批量提取每个用户的显示名称字段,最终返回字符串格式的名称列表 - 如果需要同时输出成员的其他属性(比如用户主体名、邮箱),可以调整提取规则,例如下方写法会同时返回显示名和UPN:
output "vault_users_member_info" { value = data.azuread_users.vault_group_members.users[*].{ display_name = display_name user_principal_name = user_principal_name } }
运行效果参考

内容的提问来源于stack exchange,提问作者hitman126
相关产品推荐
相关产品推荐

