我在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...
此刻我不知所措。我到处寻找,无处可寻,甚至没有找到我们为什么会遇到这个错误。
答案 0 :(得分:1)
啊,问题在于:
output "vpc_id" {
value = "${aws_vpc.vpc.id}"
}
定义根级别输出时,您需要这样做:
output "vpc_id_root" {
value = "${module.networking.vpc_id}"
}