如何引用Terraform模块创建的资源

Gui*_*TeK 13 terraform

我正在使用AWS VPC Terraform模块来创建VPC.此外,我想使用aws_internet_gateway资源创建Internet网关并将其连接到此VPC .

这是我的代码:

module "vpc" "vpc_default" {
  source = "terraform-aws-modules/vpc/aws"

  name = "${var.env_name}-vpc-default"
  cidr = "10.0.0.0/16"
  enable_dns_hostnames = true
}

resource "aws_internet_gateway" "vpc_default_igw" {
  vpc_id = "${vpc.vpc_default.id}"

  tags {
    Name = "${var.env_name}-vpc-igw-vpcDefault"
  }
}
Run Code Online (Sandbox Code Playgroud)

当我运行时terraform init,我收到以下错误:

初始化模块... - module.vpc

错误:资源'aws_internet_gateway.vpc_default_igw'配置:变量vpc.vpc_default.id中引用的未知资源'vpc.vpc_default'

如何引用Terraform模块创建的资源?

Jam*_*rke 15

由于您使用的是模块,因此需要稍微更改引用的格式.模块输出使用表单${module.<module name>.<output name>}.同样重要的是要注意,您只能参考模块输出的值.

在您的具体情况下,这将${module.vpc.vpc_id}基于VPC模块的输出.

  • 0.13 中的“module.vpc.vpc_id” (3认同)