Ресурс внешнего поставщика Terraform не имеет атрибута для переменной на этапе планирования - PullRequest
0 голосов
/ 31 мая 2018

При запуске плана 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}'

1 Ответ

0 голосов
/ 18 декабря 2018

Ваш синтаксис Terraform неправильный.data.external.example.result это карта.Для доступа к его записи foobaz вам необходимо ввести код

"${data.external.example.result["foobaz"]}"

См. https://www.terraform.io/docs/configuration/interpolation.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...