【问题标题】:How to dynamically create resources only when terraform workspace is staging environment仅当 terraform 工作空间为暂存环境时如何动态创建资源
【发布时间】:2022-01-04 10:32:05
【问题描述】:

这实际上不是问题,但我需要一些帮助来处理这个案例!

本质上,我想遍历下面的本地指标以创建两个 CloudWatch 指标,但仅限于 terraform 工作区正在暂存时。

如何仅使用 for_each 语句来实现此条件?

提前致谢。

地形配置文件

当地人{ local.prefix = terraform.workspace 指标 = { “AAA - 尝试” = { 源 = “前端” 过滤模式=“YYY” 度量值 = 1 }, “AAA - 取消” = { 源 = “前端” 过滤模式=“XXX” 度量值 = 1 } } } 资源“aws_cloudwatch_log_metric_filter”“应用指标”{ count = local.prefix == "staging" ? 1 : 0 for_each = local.metrics name = "${local.prefix}-${each.key}" pattern = each.value["filter-pattern"] log_group_name = aws_cloudwatch_log_group.frontend_logs.name 度量转换{ 名称 = each.key 命名空间 = "${local.prefix}-metrics" value = each.value["metric-value"] } }

实际行为

“count”和“for_each”元参数是互斥的,只有一个应该用于明确要创建的资源数量。

【问题讨论】:

    标签: amazon-web-services terraform


    【解决方案1】:

    你可以这样做:

    resource "aws_cloudwatch_log_metric_filter" "app-metrics" {
    
      for_each = local.prefix == "staging1" ? local.metrics : {}
    
      # the rest of your code account for for_each.
    

    【讨论】:

      猜你喜欢
      • 2020-04-13
      • 2023-01-07
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 2019-03-07
      • 1970-01-01
      • 2014-02-14
      • 2021-02-19
      相关资源
      最近更新 更多