使用以下脚本运行terraform计划时,我会发出以下错误消息:

Error: Error running plan: 1 error(s) occurred:

* output.foobaz: Resource 'data.external.example' does not have attribute 'result.foobaz' for variable 'data.external.example.result.foobaz'

测试中没有出现外部脚本在计划阶段实际执行的情况,但是,计划阶段似乎试图插入预期的响应,这对我来说似乎是不正确的 . 有什么我想念的吗?

provider "scaleway" {
  region = "ams1"
}

resource "scaleway_ip" "swarm_manager_ip" {
  count = 1
}

data "external" "example" {
  program = ["./scripts/test.sh"]

  query = {
    # arbitrary map from strings to strings, passed
    # to the external program as the data query.
    foo = "${scaleway_ip.swarm_manager_ip.0.ip}"
    baz = "i-am-baz"
  }
}

output "foobaz" {
  value = "${data.external.example.result.foobaz}"
}

output "scaleway_ip_address" {
  value = "${scaleway_ip.swarm_manager_ip.0.ip}"
}

这是外部脚本:

#!/bin/bash

# Exit if any of the intermediate steps fail
set -e

# Extract "foo" and "baz" arguments from the input into
# FOO and BAZ shell variables.
# jq will ensure that the values are properly quoted
# and escaped for consumption by the shell.
eval "$(jq -r '@sh "FOO=\(.foo) BAZ=\(.baz)"')"

# Placeholder for whatever data-fetching logic your script implements
FOOBAZ="$FOO BAZ"

# Safely produce a JSON object containing the result value.
# jq will ensure that the value is properly quoted
# and escaped to produce a valid JSON string.
jq -n --arg foobaz "$FOOBAZ" '{"foobaz":$foobaz}'