【问题标题】:Terraform error: does not have attribute 'private_ip' for variableTerraform 错误:变量没有属性“private_ip”
【发布时间】:2018-10-12 14:28:22
【问题描述】:

使用 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 点实例请求确实具有在 Terraform 文档here 中说明的 private_ip 属性。

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}"
}

【问题讨论】:

    标签: amazon-web-services amazon-ec2 terraform


    【解决方案1】:

    这应该可行。

    wait_for_fulfillment = true
    

    【讨论】:

      【解决方案2】:

      这看起来像是 Terraform 的 AWS 提供商中的一个错误,类似于 issue #4313。我建议提交一个新问题。

      我测试了您的代码并发现了同样的问题。但是,一旦我在 apply 之后运行 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
      ]
      

      【讨论】:

      • 我尝试了 0.11.8 版本,但得到了相同的结果。我想知道是否有解决方法?
      • 如果我必须打赌,我会拒绝。我认为提交错误报告可能会更快更干净。我无法想象这是一件很难解决的事情。
      猜你喜欢
      • 2018-02-04
      • 2019-11-20
      • 1970-01-01
      • 2018-09-18
      • 1970-01-01
      • 2018-10-11
      • 2021-03-10
      • 2020-12-11
      • 1970-01-01
      相关资源
      最近更新 更多