You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Terraform中遍历值为列表的字典dataset_bindings并提取所有邮箱地址为字符串

Terraform: 遍历字典提取所有邮箱地址并转为字符串

嘿,我来帮你搞定这个需求!要遍历你的dataset_bindings字典并提取所有邮箱地址,用Terraform内置的几个函数组合就能轻松实现,步骤很简单:

实现步骤与代码示例

首先,我们可以通过本地值(或变量)定义你的字典,然后用函数链完成处理:

locals {
  # 你的原始字典结构
  dataset_bindings = {
    "infra"     = ["group:infra-team@xxxx.com"]
    "finance"   = ["group:finance-data@xxx.com"]
    "marketing" = ["group:marketing@xxx.com"]
  }

  # 第一步:提取所有列表值并拍平为一维列表
  all_email_list = flatten(values(local.dataset_bindings))

  # 第二步:将列表转为指定分隔符的字符串(这里用逗号+空格)
  all_email_string = join(", ", local.all_email_list)
}

关键函数拆解

我来解释下用到的几个核心函数:

  • values(local.dataset_bindings):获取字典里的所有值,返回的是嵌套列表结构:[["group:infra-team@xxxx.com"], ["group:finance-data@xxx.com"], ["group:marketing@xxx.com"]]
  • flatten(...):把嵌套的列表展开成一维列表,结果变成:["group:infra-team@xxxx.com", "group:finance-data@xxx.com", "group:marketing@xxx.com"]
  • join(", ", ...):把列表中的元素用你指定的分隔符拼接成单个字符串,这里用逗号加空格,最终就能得到你需要的邮箱字符串形式。

验证输出结果

如果想确认处理后的结果是否正确,可以添加一个输出块:

output "all_emails_result" {
  value = local.all_email_string
}

执行terraform apply后,就能在控制台看到最终的邮箱字符串啦。

内容的提问来源于stack exchange,提问作者anu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 18:13:12