Home > database >  How to get object id of user which need to be add in resource group which is running in loop
How to get object id of user which need to be add in resource group which is running in loop

Time:09-29

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!

  • Related