azure - 如何使用动态 block 进行查找

标签 azure terraform

在这里,我计划为 azure 事件网格订阅添加高级过滤器,据我了解,高级过滤器只为事件网格添加了一个,所以我更喜欢使用 length 函数通过变量映射来控制它(var.advanced_filter)。在这里,我遇到了第二个动态 block 出现错误的问题:lookup() 需要一个 map 作为第一个参数。

ma​​in.tf

dynamic "advanced_filter" {
    for_each = length(var.advanced_filter)>0 ?[1]:[0]
    content {

      dynamic "bool_equals" {
        for_each = lookup(var.advanced_filter,"bool_equals", "") != "" ? [1] : []
        content {
          key   = var.advanced_filter.bool_equals.key
          value = var.advanced_filter.bool_equals.value
        }
      }
     }
}
}

变量.tf

variable "advanced_filter" {
  type        = any
  description = "Adding advanced filters for azure event grid subscription"
  default = [{ bool_equals = {
    key = "True"
  value = "test" } }]

}

最佳答案

您的 var.advanced_filter 是一个 map 列表,因此您必须使用索引访问列表中的各个 map ,例如 01 等等。由于列表中只有一个元素,因此它应该是:

for_each = lookup(var.advanced_filter[0], "bool_equals", "") != "" ? [1] : []

关于azure - 如何使用动态 block 进行查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75669830/

相关文章:

amazon-web-services - 通过Terraform创建策略时出现MalformedPolicyDocument错误

Azure DevOps Server 无法使用作为订阅贡献者的服务主体创建 Azure 资源

c# - 是否可以在不编辑 web.config 的情况下获得 ACS 声明?

azure - 从 Azure 计费发票 CSV 文件获取总成本

terraform - Terraform 资源名称中可以有一个点吗?

google-cloud-platform - Google Cloud Run 出站静态 IP 是 169.254.X.X 而不是保留的 IP

amazon-web-services - │ 错误 : Reference to undeclared resource

azure - Azure PostgreSQL 服务器没有 VNET 选项

azure - 如何将 Azure Web 应用/Web 作业自定义日志提取到 Azure Monitor 日志分析工作区

azure - 如何在 Azure 门户中固定菜单?