Dns 通过terraform将监控连接到ns1记录

Dns 通过terraform将监控连接到ns1记录,dns,terraform,Dns,Terraform,我有一个创建ns1记录的地形代码: answers { answer = "MY_FIRST_IP" meta = { up = true georegion = "US-WEST,ASIAPAC" } } answers { answer = "MY_SECOUND_IP" meta = { up = true georegion = &q

我有一个创建ns1记录的地形代码:

answers {
    answer = "MY_FIRST_IP"
    meta = {
      up = true
      georegion = "US-WEST,ASIAPAC"
    }
  }
  answers {
    answer = "MY_SECOUND_IP"
    meta = {
      up = true
      georegion = "EUROPE"
    }
我想在第二个答案中,它将取决于我的监控是否启动,在UI中它看起来是这样的:

它的工作原理和预期的一样,但当我试图用类似的东西在地形中创建它时:

answers {
    answer = "MY_FIRST_IP"
    meta = {
      up = true
      georegion = "US-WEST,ASIAPAC"
    }
  }
  answers {
    answer = "MY_SECOUND_IP"
    meta = {
      up = "My Monitoring Name"
      georegion = "EUROPE"
    }
我得到了这个错误:

Error: found error/s in answer metadata,found type mismatch for meta field 'Up'. expected [bool], got: string
我在文档中搜索了它,但没有发现任何关于此选项的提及


谢谢

以下内容应该适合您:

  • 创建数据源:

    resource "ns1_datasource" "example" {
     name       = "example"
     sourcetype = "nsone_monitoring"
    }
    
  • 创建监视作业:

    resource "ns1_monitoringjob" "uswest_monitor" {
     name          = "uswest"
     active        = true
     regions       = ["sjc", "sin", "lga"]
     job_type      = "tcp"
     frequency     = 60
     rapid_recheck = true
     policy        = "quorum"
    
     config = {
      ssl  = 1
      send = "HEAD / HTTP/1.0\r\n\r\n"
      port = 443
      host = "example-elb-uswest.aws.amazon.com"
     }
    
     rules {
      value      = "200 OK"
      comparison = "contains"
      key        = "output"
     }
    }
    
  • 创建数据源:

    resource "ns1_datafeed" "uswest_feed" {
     name      = "uswest_feed"
     source_id = "${ns1_datasource.example.id}"
    
     config = {
      jobid = "${ns1_monitoringjob.uswest_monitor.id}"
     }
    }
    
  • 然后,您可以使用以下回答模式创建记录:

    answers {
     answer = "MY_SECOND_IP"
     meta    = {
      georegion = "EUROPE"
      up    = "{\"feed\":\"${ns1_datafeed.uswest_feed.id}\"}"
     }
    }