Назад | Перейти на главную страницу

Справочный ресурс в подмодуле terraform

Я занимаюсь преобразованием устаревшей установки aws в Terraform и имею следующее:

ci
  - main.tf
ci/worker
    - main.tf

В ci у меня есть группа безопасности aws, на которую я хочу ссылаться в своих подмодулях. На данный момент у меня есть:

vpc_security_group_ids      = ["${aws_security_group.vpc-idhere.id}"]

Какие ошибки с:

A managed resource "aws_security_group" "vpc-idhere" has not been declared in ci-workers.

Группа безопасности определена в ci / main.tf

Как правильно ссылаться на ресурс в подмодуле?

При вызове через границы модуля вам необходимо использовать переменные / выходы для передачи ссылок на ресурсы; модули не могут заглядывать внутрь других модулей.

Так что ваши ci-workers модулю необходимо будет объявить входную переменную, например:

variable "vpc_security_group_ids" {
  description = "List of VPC security group IDs"
  type        = list
}

Затем вы используете ${var.vpc_security_group_ids} внутри модуля. Затем, когда вы создаете экземпляр этого модуля, вы можете передать идентификаторы от родителя:

module "ci-workers" {
  source                 = "..."
  vpc_security_group_ids = ["${aws_security_group.vpc-idhere.id}"]
}

Увидеть документация модуля Чтобы получить больше информации.