We have naming standard for creating Resource Group and it is created by different via ticketing system. For that we if I request a resource group for dns. The system will create rg-dns-region for all the regions.
I want use the region created above using data source.
data "azurerm_resource_group" "rg" {
for_each = toset(["eastus", "westus", "westus2", "westus3", "southcentralus", "westcentralus", "northcentralus"])
name = "${"rg-dns"}-${each.value}"
}
output "rg_name" {
value = [for g in data.azurerm_resource_group.rg : g.name]
}
The above command yield the following output.
Outputs:
rg_name = [
"rg-dns-eastus",
"rg-dns-northcentralus",
"rg-dns-southcentralus",
"rg-dns-westcentralus",
"rg-dns-westus",
"rg-dns-westus2",
"rg-dns-westus3",
]
The above script works for the output but not able to tie the storage account creation.
#Storage Block
resource "azurerm_storage_account" "storage" {
for_each = toset(["eastus", "westus", "westus2", "westus3", "southcentralus", "westcentralus", "northcentralus"])
name = lower("sadns00${each.value}")
resource_group_name = [for g in data.azurerm_resource_group.rg : g.name]
location = each.key
tags = var.resource_tags
account_kind = "StorageV2"
account_tier = "Standard"
account_replication_type = var.replicationType
enable_https_traffic_only = true
min_tls_version = "TLS1_2"
}
│ Error: Incorrect attribute value type
│
│ on storage.tf line 19, in resource “azurerm_storage_account” “storage”:
│ 19: resource_group_name = [for g in data.azurerm_resource_group.rg : g.name]
│ ├────────────────
│ │ data.azurerm_resource_group.rg is object with 7 attributes
│
│ Inappropriate value for attribute “resource_group_name”: string required.
Can someone please assist me what I am missing. I feel like I am close but I could not figure out how to create storage account using for loops.