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

标签 terraform

我正在使用 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 ,我收到以下错误:

Initializing modules... - module.vpc

Error: resource 'aws_internet_gateway.vpc_default_igw' config: unknown resource 'vpc.vpc_default' referenced in variable vpc.vpc_default.id



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

最佳答案

由于您使用的是模块,因此您需要稍微更改引用的格式。 Module Outputs使用表格${module.<module name>.<output name>} .同样重要的是要注意,您只能引用从模块输出的值。
在您的具体情况下,这将变为 ${module.vpc.vpc_id}基于VPC Module's Outputs .

关于terraform - 如何引用由 Terraform 模块创建的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52804543/

相关文章:

azure - 使用 Terraform 分配 Synapse 角色时出错

Terraform - 根据条件创建或不创建资源

amazon-web-services - 如何在 AWS-ECR 中为 Docker 镜像使用环境变量?

Terraform - 如何在条件运算符中使用有条件创建的资源的输出?

amazon-web-services - 使用 Terraform 创建 AWS 服务角色

terraform 错误消息行号

azure - 分割逗号分隔的字符串

terraform - 调用特定的 for_each 输出

azure - Terraform Azure - 加载插件组件的架构时出错 : Failed to obtain provider schema:

aws-api-gateway - aws_api_gateway_integration 与 terraform 中的 firehose 的服务 api 应该是什么