I have above terraform which will create resource group from csv list and run loop, its showing me error, as object id is not reading. Any idea how to add owner to resource group created in loop in terraform?
locals {
project_info = csvdecode(test.csv)
}
module "azurerm_resource_group" {
for_each = { for proj in local.project_info : proj.project_name => proj }
source = "../../../modules/azurerm_resource_group"
project_name = each.value.project_name
tags = {
costcenter = ""
expiration = each.value.end_date
owner = each.value.project_owner
project = each.value.project_name
}
}
#------------------------------------------------------------------------------
# Get Object ID of Owner
#------------------------------------------------------------------------------
data "azuread_user" "owner" {
for_each = module.azurerm_resource_group
user_principal_name = lookup(each.value.resourcegroup_tags, "owner")
}
#------------------------------------------------------------------------------
# Assign RG owner access to owner of this project
#------------------------------------------------------------------------------
module "azurerm_role_assignment" {
source = "../../../modules/azurerm_role_assignment"
for_each = module.azurerm_resource_group
scope_id = each.value.id
role_definition_name = "Owner"
principal_id = values(data.azuread_user.owner)[*].object_id
}
CodePudding user response:
Try this:
module "azurerm_role_assignment" {
source = "../../../modules/azurerm_role_assignment"
for_each = module.azurerm_resource_group
scope_id = each.value.id
role_definition_name = "Owner"
principal_id = "${data.azuread_user.owner[each.key].object_id}
}
Share with me the error if it doesn't work.
Hope this helps!