Как ссылаться на ресурс, созданный модулем Terraform - PullRequest
0 голосов
/ 14 октября 2018

Я использую модуль AWS VPC Terraform для создания VPC.Кроме того, я хочу создать и подключить интернет-шлюз к этому VPC с помощью ресурса 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"
  }
}

Когда я запускаю terraform init, Я получаю следующую ошибку:

Инициализация модулей ... - module.vpc

Ошибка: ресурс 'aws_internet_gateway.vpc_default_igw' config: ссылка на неизвестный ресурс 'vpc.vpc_default'в переменной vpc.vpc_default.id

Как я могу сослаться на ресурс, созданный модулем Terraform?

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Обратите внимание, что вы можете иметь несколько экземпляров модуля в одном файле:

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 голосов
/ 14 октября 2018

Поскольку вы используете модуль, вам нужно немного изменить формат ссылки. Выходы модуля используйте форму ${module.<module name>.<output name>}.Также важно отметить, что вы можете ссылаться только на значения, выведенные из модуля.

В вашем конкретном случае это станет ${module.vpc.vpc_id} на основе выходных данных модуля VPC .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...