Terraform 每个环境需要有单独的通知通道

Terraform 每个环境需要有单独的通知通道,terraform,Terraform,我试图为prod和dev编写一个google\u monitoring\u alert\u policy资源,我似乎对每个环境都有单独的通知通道存在问题 这就是我现在拥有的: resource "google_monitoring_notification_channel" "pagerduty" { #Only use pagerduty in prod count = "${var.environment == "production" ? 1 : 0}" disp

我试图为prod和dev编写一个
google\u monitoring\u alert\u policy
资源,我似乎对每个环境都有单独的通知通道存在问题

这就是我现在拥有的:

resource "google_monitoring_notification_channel" "pagerduty" {
  #Only use pagerduty in prod
  count        = "${var.environment == "production" ? 1 : 0}"
  display_name = "Pagerduty Alerting"

  type = "pagerduty"

  labels = {
    service_key = "${var.pagerduty_service_key}"
  }
}
基本上,我试图实现的是,我只想在生产环境中创建和使用pagerduty资源。我得到的错误是:

Error: Error running plan: 1 error occurred:
    * module.stackdriver.google_monitoring_alert_policy.noisy_zk: 1 error occurred:
    * module.stackdriver.google_monitoring_alert_policy.noisy_zk: Resource 'google_monitoring_notification_channel.pagerduty' not found for variable 'google_monitoring_notification_channel.pagerduty.name'

这似乎表明TF想要呈现所有变量,即使它们没有被使用。欢迎有任何想法

这并没有完全解决,因为这是由于您使用的Terraform版本中的错误造成的?乍一看,这应该在0.12中起作用,但需要一些丑陋的黑客才能在0.11中起作用。是的,不幸的是,我们在0.11上,但在通往0.12的道路上。我刚刚创建了资源,并在频道列表中将其断开连接。一旦我们升级了,我就把资源核化。谢谢你找我!
Error: Error running plan: 1 error occurred:
    * module.stackdriver.google_monitoring_alert_policy.noisy_zk: 1 error occurred:
    * module.stackdriver.google_monitoring_alert_policy.noisy_zk: Resource 'google_monitoring_notification_channel.pagerduty' not found for variable 'google_monitoring_notification_channel.pagerduty.name'