【问题标题】:How to reference a resource created by a Terraform module如何引用由 Terraform 模块创建的资源
【发布时间】:2019-03-19 03:52:57
【问题描述】:

我正在使用AWS VPC Terraform module 创建一个 VPC。此外,我想使用 aws_internet_gateway resource 创建 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"
  }
}

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

正在初始化模块... - 模块.vpc

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

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

【问题讨论】:

    标签: terraform


    【解决方案1】:

    由于您使用的是模块,因此您需要稍微更改引用的格式。 Module Outputs 使用 ${module.<module name>.<output name>} 的形式。还需要注意的是,您只能引用从模块输出的值。

    在您的具体情况下,这将成为基于VPC Module's Outputs${module.vpc.vpc_id}

    【讨论】:

    • module.vpc.vpc_id in 0.13
    • 我使用了模块的输出名称作为我需要的值的标识符...谢谢!
    猜你喜欢
    • 2019-08-26
    • 2022-09-22
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2019-12-16
    • 2019-10-31
    • 1970-01-01
    • 2021-09-12
    相关资源
    最近更新 更多