【发布时间】: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