如何仅在配置 AWS RDS 实例后创建用户和数据库?

use*_*257 6 terraform

关于如何在创建数据库或用户之前等待配置 AWS RDS 数据库主机的任何建议?为了实现这一点,我尝试使用depends_on参数,以便它等待首先配置RDS 数据库。似乎提供者不能等待资源。

运行此程序时出现以下错误:

提供程序参数名称“depends_on”保留供 Terraform 在未来版本中使用。

--- Terraform 计划片段 ----

# Provision AWS PostgreSQL Dev Database
resource "aws_db_instance" "dev_db" {
    identifier = "dev"
    allocated_storage    = 100
    storage_type         = "gp2"
    engine               = "postgres"
    engine_version       = "10.9"
    port                 = 1433
    instance_class       = "db.t3.medium"
    name                 = "dev"
    username             = "dev"
    password             = "mydevpassword"
    parameter_group_name = "postgress10"
    tags = {
        Name = "dev"
    }
    skip_final_snapshot = true
}
# Setup PostgreSQL Provider After RDS Database is Provisioned
provider "postgresql" {
    host            = "${aws_db_instance.dev_db.address}"
    port            = 1433
    username        = "dev"
    password        = "mydevpassword"
    depends_on      = [aws_db_instance.dev_db]
}
# Create App User
resource "postgresql_role" "application_role" {
    name                = "dev_appuser"
    login               = true
    password            = "myappuserpassword"
    encrypted_password  = true
    depends_on          = [aws_db_instance.dev_db]
}
# Create Database 
resource "postgresql_database" "dev_db" {
    name              = "mydatabase1"
    owner             = "dev"
    template          = "template0"
    lc_collate        = "C"
    connection_limit  = -1
    allow_connections = true
    depends_on        = [aws_db_instance.dev_db]
}
Run Code Online (Sandbox Code Playgroud)

rom*_*ara 5

我在GitHub 问题的 postgres 提供程序存储库中询问了这个问题,维护人员能够为此提供解决方法 - 如果您expected_version在提供程序配置中指定,它不会尝试连接,直到资源实际使用该连接。

这意味着可以使用资源的依赖行为来阻止连接,直到 Terraform 完成 RDS 资源的设置。这似乎适用于plan案例和apply案例。