Ошибка Terraform: нет атрибута private_ip для переменной - PullRequest
0 голосов
/ 12 октября 2018

Используя Terraform версии 0.11.7, код ниже, я получаю эту ошибку:

    * output.aws_runner_private_ip_addresses: Resource 'aws_spot_instance_request.runner' does not have attribute 'private_ip' for variable 'aws_spot_instance_request.runner.*.private_ip'
    * output.aws_walker_private_ip_addresses: Resource 'aws_spot_instance_request.walker' does not have attribute 'private_ip' for variable 'aws_spot_instance_request.walker.*.private_ip

Синтаксис вывода выглядит правильно в соответствии с документацией от Terraform

И terraformЗапрос экземпляра spot имеет атрибут private_ip, который указан в документации Terraform здесь .

resource "aws_spot_instance_request" "walker" {
  count = 2
  instance_type = "t2.micro"
  ami = "ami-0922553b7b0369273"
  spot_price = "1"
}

resource "aws_spot_instance_request" "runner" {
  count = 2
  instance_type = "t2.micro"
  ami = "ami-0922553b7b0369273"
  spot_price = "1"

}

output "aws_walker_private_ip_addresses" {
    value = ["${aws_spot_instance_request.walker.*.private_ip}"]
}

output "aws_runner_private_ip_addresses" {
    value = ["${aws_spot_instance_request.runner.*.private_ip}"]
}

Однако, если я уберу квадратные скобки из кода, он будет работать, и нетошибка, но документ Terraform, кажется, говорит, что мне нужно использовать квадратные скобки, так как значение будет типом списка возвращаемых списков адресов private_ip для каждого экземпляра.Что я здесь не так делаю или неправильно понимаю?

Это работает, но, похоже, противоречит документу:

output "aws_walker_private_ip_addresses" {
    value = "${aws_spot_instance_request.walker.*.private_ip}"
}

output "aws_runner_private_ip_addresses" {
    value = "${aws_spot_instance_request.runner.*.private_ip}"
}

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Это должно работать.

wait_for_fulfillment = true
0 голосов
/ 12 октября 2018

Это похоже на ошибку в провайдере AWS для Terraform, похожую на issue # 4313 .Я предлагаю подать новую проблему.

Я проверил ваш код и обнаружил ту же проблему.Однако, как только я запустил terraform refresh после применения , результаты выглядели нормально.Например:

Outputs:

aws_runner_private_ip_addresses = [
  172.31.79.186,
  172.31.71.22
]
aws_walker_private_ip_addresses = [
  172.31.69.119,
  172.31.66.50
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...