Terraform Provider in for_each

I have Terraform provider block like below

provider “azurerm” {

alias = “abc”

subscription_id = “cdfg07……………….5efc083”

features {}

}

provider “azurerm” {

alias = “abc2”

subscription_id = “z48i5afa-…..59477”

features {}

}

provider “azurerm” {

alias = “abc3”

subscription_id = “z48i5adda-…..59434”

features {}

}

And variable block like below

variable “service_alert_environment_variables” {

type = map(object({

subscription = string

subscription_id = string

subscription_alias_name = string

}))

default = {

“abc” = {

  subscription = “Sandbox”

 subscription_id = “cdfg07……………….5efc083”

 subscription_alias_name = “abc”

}

“abc2” = {

subscription = “Dev”

subscription_id = “z48i5afa-…..59477”

subscription_alias_name = “abc2”

}

“abc3” = {

subscription = “Prod”

subscription_id = “z48i5adda-…..59434”

 subscription_alias_name = “abc3”

}

}

}

And Inside Module I am trying to get provider through for_each

module “service_health” {
source = “../module”
for_each = var.service_alert_environment_variables

providers = {
    azurerm = azurerm.each.value.subscription_alias_name
}

subscriptionId = each.value.subscription_id

}

But it’s throwing error . Not supporting the attribute.

You should wrap your code in triple-backticks / code block.

I don’t think provider for_each is supported in Terraform, though it is now supported in OpenTofu, FWIW.

@raj7s7raj at the end of your code you need to add this !! your resource = each.value

Hi Paragdubey

This will work for normal resources but not for “provider”