【发布时间】:2020-01-03 02:29:03
【问题描述】:
关于如何在创建数据库或用户之前等待 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]
}
【问题讨论】:
-
depends_on 应该是一个列表,例如:
depends_on = [aws_db_instance.dev_db] -
谢谢!现在我遇到了一个问题,告诉提供者连接要等到配置数据库。似乎depends_on 不是为提供者设计的,或者在Terraform 中尚不可用。我收到此错误“提供程序参数名称“depends_on”已保留供 Terraform 在未来版本中使用。” Terraform v0.12.7 + provider.aws v2.25.0 + provider.postgresql v1.1.0
-
Terraform 隐式处理大多数依赖项。如果你完全省略
depends_on,你还有问题吗? -
我试过了。 Posgress 提供者似乎试图在数据库准备好之前建立连接。 "Error: Error initializing PostgreSQL client: error detection capabilities: error PostgreSQL version: dial tcp 172.31.68.174:1433: connectex: 连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接主机没有响应。”
-
我明白了。您似乎遇到了这个问题:github.com/terraform-providers/terraform-provider-postgresql/…
标签: terraform