Выполнение не ожидает завершения работы модуля "vpc", а только доступности значения "module.vpc.vpc_id".Для этого достаточно выполнить ресурс aws_vpc.Таким образом, вы на самом деле не говорите TerraForm, чтобы он также ждал ресурса consul_keys.
Чтобы это исправить, вы должны добавить зависимость от ресурса consul_keys в другие ваши модули.Это работает либо:
- Использование значения, экспортированного consul_keys в другие ваши модули (либо datacenter, либо var.name>)
- Сброс ресурсов, зависящих от consul_keys, в одном файле.
К сожалению, в настоящее время нет хорошего решения для этого, но работают над зависимостями модулей.
РЕДАКТИРОВАТЬ: Как пример сброса всехресурсы в том же файле:
Это не работает, потому что нет зависимостей модуля:
module "vpc" {
...
}
module "other" {
depends_on=["module.vpc"]
}
Файл модуля vpc:
resource "aws_instance" "vpc_res1" {
...
}
resource "consul_keys" "my_keys" {
...
}
другой файл модуля:
resource "aws_instance" "other_res1" {
...
}
resource "aws_instance" "other_res2" {
...
}
Помещение всего в один файл работает.Вы также можете хранить ресурс «vpc_res1» в отдельном модуле:
resource "consul_keys" "my_keys" {
...
}
resource "aws_instance" "other_res1" {
depends_on = ["resource.my_keys"]
}
resource "aws_instance" "other_res2" {
depends_on = ["resource.my_keys"]
}