在 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
}
我目前正在寻求有关 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
}