Terraform 属性“”的值不正确;触发器";:需要字符串的映射

Terraform 属性“”的值不正确;触发器";:需要字符串的映射,terraform,Terraform,遇到错误“属性的值不合适”触发器:需要字符串映射 正在尝试使用本地exec provisioner,在本例中为“monitor”,它应在创建特定资源之前触发 尝试在bigip\u ltm\u监视器资源中设置dependens\u=[null\u resource.test\u run]而不是在null\u资源中设置触发器{…} 这允许Terraform在监视器之前创建provisioner资源 有关详细信息,请参见。尝试在bigip\u ltm\u监视器资源中设置依赖=[null\u资源。测试运

遇到错误“属性的值不合适”触发器:需要字符串映射

正在尝试使用本地exec provisioner,在本例中为“monitor”,它应在创建特定资源之前触发


尝试在bigip\u ltm\u监视器资源中设置
dependens\u=[null\u resource.test\u run]
而不是在null\u资源中设置
触发器{…}

这允许Terraform在监视器之前创建provisioner资源


有关详细信息,请参见。

尝试在bigip\u ltm\u监视器资源中设置
依赖=[null\u资源。测试运行]
而不是在null\u资源中设置
触发器{…}

这允许Terraform在监视器之前创建provisioner资源


有关详细信息,请参见。

参数的作用是指定字符串集合,
null\u资源
实现可以检查更改以决定是否替换对象,从而重新运行provisioner

如果您需要在创建
bigip\u ltm\u监视器之前创建
null\u资源。test\u run
。millenium
,则需要以另一种方式在
bigip\u ltm\u监视器内写入依赖项边缘。例如:

resource "bigip_ltm_monitor" "millenium" {
  compatibility = "enabled"
  interval      = "5"
  name          = "/Common/https_mon"
  parent        = "/Common/https"
  receive       = "200"
  reverse       = "disabled"
  send          = "GET /health HTTP/1.1\r\nHost: xyz.com\r\nConnection: Close\r\n\r\n"
  timeout       = "16"

  depends_on = [null_resource.test_run]
}

triggers
参数的目的是指定字符串集合,
null\u资源
实现可以检查这些字符串的更改,以决定是否替换对象,从而重新运行provisioner

如果您需要在创建
bigip\u ltm\u监视器之前创建
null\u资源。test\u run
。millenium
,则需要以另一种方式在
bigip\u ltm\u监视器内写入依赖项边缘。例如:

resource "bigip_ltm_monitor" "millenium" {
  compatibility = "enabled"
  interval      = "5"
  name          = "/Common/https_mon"
  parent        = "/Common/https"
  receive       = "200"
  reverse       = "disabled"
  send          = "GET /health HTTP/1.1\r\nHost: xyz.com\r\nConnection: Close\r\n\r\n"
  timeout       = "16"

  depends_on = [null_resource.test_run]
}

请共享的完整千年属性monitor@rflume请查看。错误消息有效:对于
触发器
,您有一个
Map[Map[String]]
而不是
Map[String]
。这里有两件事:Terraform的哪个版本,你能
Terraform fmt
你的配置让它可读吗?起初我以为它是嵌套的JSON格式,但它似乎是一种奇怪的HCL格式,显然是有效的。我已经编辑成一种更规范的样式,以使Terraform的其他用户可以阅读,但如果有很好的理由,可以将其回滚到该格式。现在我已经将格式更改为一种更规范的样式HCL,看起来应该可以,所以现在我担心这种编辑会使问题无效。如果你能详细解释一下为什么你首先要用HCL,这可能会有所帮助monitor@rflume请查看。错误消息有效:对于
触发器
,您有一个
Map[Map[String]]
而不是
Map[String]
。这里有两件事:Terraform的哪个版本,你能
Terraform fmt
你的配置让它可读吗?起初我以为它是嵌套的JSON格式,但它似乎是一种奇怪的HCL格式,显然是有效的。我已经编辑成一种更规范的样式,以使Terraform的其他用户可以阅读,但如果有很好的理由,可以将其回滚到该格式。现在我已经将格式更改为一种更规范的样式HCL,看起来应该可以,所以现在我担心这种编辑会使问题无效。如果您能详细说明为什么要使用HCL这种格式,可能会有所帮助。这不是必需的,也不能回答问题。@rflume感谢您的建议。我知道这种解决方法,但我正在使用bigip provider并创建各种监视器、节点、,池等。这里的想法是使触发器选项起作用,以便我可以在创建其他资源(如监视器和节点)之前执行bash脚本,而不会使依赖关系树复杂化。这不是必需的,也不能回答问题。@rflume感谢您的建议。我知道这种解决方法,但我正在使用bigip provider并创建各种监视器、节点、池等。这里的想法是使触发器选项起作用,以便我可以在创建其他资源(如监视器和节点)之前执行bash脚本,而不会使依赖关系树复杂化。