From 34aa6bbb8fea0509acb0425c203cacb01c9ec74b Mon Sep 17 00:00:00 2001 From: jksprattler Date: Wed, 27 Nov 2024 16:14:16 -0600 Subject: [PATCH] map sa name to nsg key --- cloud_Azure/terraform/module/storage_account.tf | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cloud_Azure/terraform/module/storage_account.tf b/cloud_Azure/terraform/module/storage_account.tf index 4f108a6..bb4e2c4 100644 --- a/cloud_Azure/terraform/module/storage_account.tf +++ b/cloud_Azure/terraform/module/storage_account.tf @@ -4,9 +4,14 @@ locals { _names = [for name in var.resource_group_names : "${name}${var.subscription_id}"] _lowercase_names = [for name in local._names : lower(name)] _alphanum_lowercase_names = [for name in local._lowercase_names : join("", regexall("[[:alnum:]]+", name))] - generated_storage_account_names = [for i, name in local._alphanum_lowercase_names : substr(name, 0, 24)] + generated_storage_account_names = [for name in local._alphanum_lowercase_names : substr(name, 0, 24)] + # Generate a map of NSG keys to storage account names + nsg_to_storage_account_name = { + for i, nsg in local.flat_nsgs : nsg.key => local.generated_storage_account_names[i] + } } + # Creates one storage account per nsg per resource group to store flow logs # StorageAccounts are mapped 1:1+:1 to nsg(s) and resource_group_names # Note that only one flow log can be associated with a storage account per region @@ -14,7 +19,7 @@ resource "azurerm_storage_account" "logs_storage_account" { for_each = { for nsg in local.flat_nsgs : nsg.key => nsg.value } # generate storage account per nsg(s) in each rg - name = local.generated_storage_account_names[lookup(local.flat_nsgs, each.key, 0)] + name = local.nsg_to_storage_account_name[each.key] resource_group_name = each.value.rg location = var.location account_tier = "Standard"