2017-02-03 13 views
0

Я использую Terraform для развертывания сервера базы данных с исходной базой данных и пользователем.Как добавить задержку в создание postgresql_database после aws_db_instance

Файлы Terraform устанавливают точную AFAICS, но действия postgresql_role и postgresql_database не выполняются, поскольку база данных (Amazon RDS) все еще настраивается при их вызове.

Есть ли способ Terraform для принудительного ожидания? Или явная проверка, доступна ли база данных?

ответ

1

Вы можете использовать local-exec provisioner реализовать ожидания достаточно легко:

variable "database_delay" { default = 60 } 

resource "aws_db_instance" "default" { 
    allocated_storage = 10 
    engine    = "postgres" 
    engine_version  = "9.6.1" 
    instance_class  = "db.t2.micro" 
    name     = "mydb" 
    username    = "foo" 
    password    = "bar" 
    db_subnet_group_name = "my_database_subnet_group" 
    parameter_group_name = "postgres9.6" 

    provisioner "local-exec" { 
    command = "sleep ${var.database_delay}" 
    } 
} 

В приведенном выше примере я настроил его просто подождите 60 секунд при создании экземпляра базы данных, прежде чем перейти к любой другой зависимый ресурсов/модулей (таких как ресурс progresql_database). Очевидно, вам все равно нужно убедиться, что существует цепочка зависимостей, которую Terraform может следовать, чтобы знать, что она должна сначала завершить создание aws_db_instance.

 Смежные вопросы

  • Нет связанных вопросов^_^