Terraform Root Level输出问题

时间:2017-01-31 17:57:58

标签: terraform

我在terraform中遇到模块根级别输出的一些奇怪问题。

我们在根级别的outputs.tf中有以下内容:

output "vpc_id" {
  value = "${aws_vpc.vpc.id}"
}

在模块中我们有

resource "aws_vpc" "vpc" {
  cidr_block = "${var.vpc_cidr}"
  enable_dns_hostnames = true
  tags {
      Name = "${upper(var.env)}-TF"
      env = "${var.env}"
      managed = "Terraform"
  }
}

然而,当运行计划terraform错误时,解析输出块并在跟踪上显示:

2017/01/31 17:56:54 [INFO] Terraform version: 0.8.0  142dd256ad48ab17b6019fe9cd18712167fcf4b4
2017/01/31 17:56:54 [INFO] CLI args: []string{"/usr/local/bin/terraform", "get"}
2017/01/31 17:56:54 [DEBUG] Detected home directory from env var: /root
2017/01/31 17:56:54 [DEBUG] Detected home directory from env var: /root
2017/01/31 17:56:54 [DEBUG] Attempting to open CLI config file: /root/.terraformrc
2017/01/31 17:56:54 [DEBUG] File doesn't exist, but doesn't need to. Ignoring.
Get: file:///srv/terraform/modules/networking/
2017/01/31 17:56:54 [DEBUG] Detected home directory from env var: /root
Error loading Terraform: module root: 1 error(s) occurred:

* output 'vpc_id': unknown resource 'aws_vpc.vpc' referenced in variable aws_vpc.vpc.id
2017/01/31 17:56:54 [DEBUG] plugin: waiting for all plugin processes to complete...

此刻我不知所措。我到处寻找,无处可寻,甚至没有找到我们为什么会遇到这个错误。

1 个答案:

答案 0 :(得分:1)

啊,问题在于:

output "vpc_id" {
  value = "${aws_vpc.vpc.id}"
}

定义根级别输出时,您需要这样做:

output "vpc_id_root" {
  value = "${module.networking.vpc_id}"
}