Как получить данные, такие как имя ресурса, из файла модуля или терраформ, который находится в другом каталоге?

Как получить данные из модуля, который находится в другом каталоге. У меня есть каталог с именем modules в этом каталоге, у меня есть два подкаталога с именем template и instance-from-template. В каталоге template у меня есть все файлы для создания шаблона экземпляра в GCP, и я успешно могу создать из него шаблон. Теперь я хочу использовать имя шаблона в другом каталоге instance-from-template, где я пытаюсь создать экземпляр из существующего шаблона. Но если я использую модуль и упоминаю свой источник как modules/template, он запрашивает у меня переменные для создания нового шаблона. Но я хочу использовать существующий.

Я использовал outputs.tf и использовал модуль, например, из шаблона, предполагая, что это может помочь мне получить параметры. И пытаюсь использовать что-то вроде этого

source_instance_template = "${module.template.template-name}"

код в модулях-> шаблон-> main.tf

  resource "google_compute_instance_template" "appserver" {
  name        = "${var.templatename}"
  description = "This template is used to create app server instances."

  tags = ["terraform-gcp", "test"]

  labels = {
    environment = "${var.env}"
  }

  instance_description = "${var.description}"
  machine_type         = "${var.machinetype}"
  can_ip_forward       = false

  scheduling {
    automatic_restart   = true
    on_host_maintenance = "MIGRATE"
  }

  // Create a new boot disk from an image
  disk {
    source_image = "${var.templateimage}"
    auto_delete  = "${var.autodelete}"
    boot         = true
  }

  // Use an existing disk resource

  network_interface {
    network = "${var.templatenetwork}"
  }

  metadata = {
    foo = "bar"
  }

  service_account {
    email =  "${var.serviceemail}"
    scopes = ["compute-ro", "storage-ro"]
  }
    lifecycle {
    create_before_destroy = true
  }
}

output "template-name"{
    value = "${google_compute_instance_template.appserver.name}"
}


Код в модулях-> instance-from-template-> main.tf

module template{
    source="../template"
}
resource "google_compute_instance_from_template" "tpl" {
  name           = "instance-from1-template"
  zone           = "us-central1-a"

  source_instance_template = "${module.template.template-name}"

  // Override fields from instance template
  can_ip_forward = false
  labels = {
    my_key       = "my_value_test"
  }
}

ошибка

    on instance-from-template.tf line 1, in module "template":
   1: module template{

The argument "templatename" is required, but no definition was found.

person Ram    schedule 07.08.2019    source источник
comment
вы можете проверить, как использовать директиву output для экспорта переменных из одного модуля в другой, это задокументировано в документации terraform   -  person c4f4t0r    schedule 07.08.2019
comment
Возможный дубликат Terraform: вывод поля из модуля   -  person Aleksi    schedule 07.08.2019