在 ADD terraform/create 模块中添加多个用户以在其他环境中使用

Add multiple users in ADD terraform/ create module to use in other env

我目前正在寻求有关 AAD 和 Terraform 的帮助。我需要创建多个用户并将其作为一个模块,以便我可以在少数环境中使用它。有没有人这样做并且能够提供帮助?

variable.tf

variable "users" {
    type = map
    default = [
        [
        "user1",
        "user1display",
        "password119823"
        ],

        [
        "user2",
        "user2display",
        "password119823"
        ]
    ]
}

This variable return 一个错误,就是这个错误的类型。我该如何申报?

main.tf

resource "azuread_user" "team_user" {
  for_each = toset(var.users)  
  user_principal_name = "${each.value[0]}@${var.domain}"
  display_name = each.value[1]
  password = each.value[2]
  }

这个循环做得好吗?我对创建多个资源有点菜鸟。

提前致谢!

for_each 无法遍历列表的列表。因此,您可以将其更改为列表映射,如下所示:

resource "azuread_user" "team_user" {
  for_each = {for idx, user in var.users: idx=>user}  
  user_principal_name = "${each.value[0]}@${var.domain}"
  display_name = each.value[1]
  password = each.value[2]
}

我认为您传递给 for_each 的数据结构并不理想。如果你只是做这样的事情,它看起来会更整洁。

---> 抱歉编辑后的工作解决方案:)

variable "users" {
    type = map(any)
    default =  {
  user1 = {
    display = "user1display"
    password = "password119823"
  }
  user2 = {
    display = "user2display"
    password = "password119823"
  }
}

resource "azuread_user" "team_user" {
  for_each = var.users
  
  user_principal_name = "${each.key}@${var.domain}"
  display_name = each.value.display
  password = each.value.password
}