@apparentlymart - What is the approach to to reference a resource which is using for_each?
I have tried each.key and each.value with no luck.
resource "random_password" "sql_server_password" {
for_each = toset(var.db_names)
length = 32
special = true
}
resource "azurerm_sql_server" "sqlserver" {
for_each = toset(var.db_names)
name = "${format("%s%s%s-sqlserver-%s", lower(var.environment_code), lower(var.deployment_code), lower(var.location_code), lower(each.value))}"
resource_group_name = "${var.resource_group_name}"
location = "${var.azure_location}"
version = "${var.sql_version}"
administrator_login = "${format("%s_%s", each.value, "admin")}"
administrator_login_password = "${random_password.sql_server_password.*.result[each.value]}"
provisioner "local-exec" {
command = "${format("echo fully qualified sql server domain name %s", self.fully_qualified_domain_name)}"
}
}
Results:
Error: Unsupported attribute
on ../modules/sql_server_database/main.tf line 18, in resource "azurerm_sql_server" "sqlserver":
18: administrator_login_password = "${random_password.sql_server_password.*.result[each.value]}"
This object does not have an attribute named "result".
or
Error: Invalid index
on ../modules/sql_server_database/main.tf line 18, in resource "azurerm_sql_server" "sqlserver":
18: administrator_login_password = "${random_password.sql_server_password.*.result[each.key]}"
|----------------
| each.key is "db2"
| random_password.sql_server_password is object with 2 attributes
The given key does not identify an element in this collection value: a number
is required.```