如何引用Terraform模块创建的资源
我正在使用创建专有网络。此外,我想使用创建一个Internet网关并将其连接到此VPC 这是我的密码:如何引用Terraform模块创建的资源,terraform,Terraform,我正在使用创建专有网络。此外,我想使用创建一个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
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"
}
}
当我运行terraforminit
时,我得到以下错误:
正在初始化模块。。。
-module.vpc
错误:资源“aws_internet_gateway.vpc_default_igw”配置:变量vpc.vpc_default.id中引用了未知资源“vpc.vpc_default”
如何引用Terraform模块创建的资源?由于您使用的是模块,因此需要稍微更改引用的格式。使用表格
${module..}
。还需要注意的是,您只能引用从模块输出的值
在您的特定情况下,这将成为
${module.vpc.vpc_id}
,基于。注意:您可以在一个文件中有多个模块实例:
module "vpc1" "vpc_default" {}
module "vpc2" "vpc_default" {}
module "vpc3" "vpc_default" {}
module "vpc4" "vpc_default" {}
${module.vpc1.vpc_id}
${module.vpc2.vpc_id}
${module.vpc3.vpc_id}
${module.vpc4.vpc_id}
0.13中的module.vpc.vpc\u id