Я занимаюсь преобразованием устаревшей установки 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}"]
}
Увидеть документация модуля Чтобы получить больше информации.