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

咨询Terraform中for_each循环动态生成资源的引用语法正确性

问题分析与修复

配置错误定位

你的google_monitoring_notification_channel资源存在取值错误:

  • each.key是var.projects的键(如project_A、project_B),属于字符串类型,没有.email属性
  • 正确的邮箱地址取值应该是each.value.email,each.value才是对应键下包含email字段的map对象

错误代码片段:

labels = {
  email_address = each.key.email
}

修正后的代码:

labels = {
  email_address = each.value.email
}

for_each资源引用语法确认

你使用google_monitoring_notification_channel.basic[each.key].id的引用语法是正确的。当资源通过for_each基于map创建时,实例引用格式为资源名称[map键].属性,这里each.key与notification_channel实例的键完全匹配,引用逻辑没问题。

空notification_channels的原因

由于之前的通知通道配置错误,生成的通道可能处于无效状态(比如邮箱地址非法或为空),虽然Terraform部署无报错,但GCP端的通知通道未正常生效,导致alert_policy无法关联到有效通道ID,最终显示为空。修正上述错误后重新部署即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:37:23