如何根据地形条件过滤来自当地人的数据?

问题描述

Main.tf

locals {
    location_mapping = [
    {
        "location": "L1"
        "resource_group_name": "R1"
        "name_log_workspace_name": "W1"
    },{
        "location": "L2"
        "resource_group_name": "R2"
        "name_log_workspace_name": "W2"
    },{
        "location": "L3"
        "resource_group_name": "R3"
        "name_log_workspace_name": "W3"
    }
    ]
}

data "azurerm_log_analytics_workspace" "example" {
    # Populate name and resource group based on var.location(L2) condition if location matches in locals
    name                = "W2"
    resource_group_name = "R2"
}

我想根据本地数据块中的位置条件动态填充nameresource_group_name

示例

如果我通过 location value L2 那么 name=W2resource_group_name=R2

解决方法

正如评论中所建议的,您可以将您的 local.location_mapping 重新组织为映射,例如,称为 local.helper_map

locals {
      helper_map = {for val in local.location_mapping:
                    val["location"]=>val}
}

然后在您的 azurerm_log_analytics_workspace 中,您可以按如下方式使用它:

data "azurerm_log_analytics_workspace" "example" {
    # Populate name and resource group based on var.location(L2) condition if location matches in locals
    name                = local.helper_map["L2"]["name_log_workspace_name"]
    resource_group_name = local.helper_map["L2"]["resource_group_name"]
}