【问题标题】:Need to have separate notification channels per environment每个环境需要有单独的通知通道
【发布时间】:2020-01-10 19:23:09
【问题描述】:

我正在尝试为 prod 和 dev 编写一个 google_monitoring_alert_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}"
  }
}
resource "google_monitoring_alert_policy" "noisy_zk" {
...
  notification_channels = [
    "${split(" ", var.environment == "production" ? "${google_monitoring_notification_channel.pagerduty.name} ${google_monitoring_notification_channel.slack.name}" : "${google_monitoring_notification_channel.slack.name}")}",
  ]

基本上我想要实现的是我只想在生产环境中创建和使用 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 中使用,但需要一些丑陋的 hack 才能在 0.11 中使用。
  • 是的,不幸的是,我们在 0.11,但在通往 0.12 的道路上。我刚刚创建了资源并在频道列表中将其断开连接。一旦我们升级,我将直接核对资源。谢谢你找我!

标签: terraform


【解决方案1】:

这并没有完全解决,因为这是由于版本

【讨论】:

    猜你喜欢
    • 2019-01-09
    • 2023-03-05
    • 1970-01-01
    • 2020-10-26
    • 2014-01-13
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多