mws_mpostgres_cluster_database (Resource)
База данных в Managed PostgreSQL — это структурированный набор данных, развертываемый в кластере под управлением системы управления базами данных PostgreSQL.
Пример использования
terraform
resource "mws_vpc_network" "network" {
network = var.network_name
}
resource "mws_vpc_subnet" "subnet" {
subnet = var.subnet_name
network = mws_vpc_network.network.network
cidr = var.subnet_cidr
}
resource "mws_vpc_address" "cluster_primary_address" {
address = "${var.cluster_name}-primary-address"
network = mws_vpc_network.network.network
subnet = mws_vpc_subnet.subnet.metadata.id
}
resource "mws_mpostgres_cluster" "cluster" {
cluster = var.cluster_name
version = "17"
active = true
metadata = {
display_name = "Standalone Postgres Cluster"
description = "A standalone PostgreSQL cluster"
}
endpoints = [
{
name = "primary-endpoint"
network = mws_vpc_network.network.metadata.id
primary_addresses = [
{
ref = mws_vpc_address.cluster_primary_address.metadata.id
}
]
}
]
instance_template = {
vm_type = "vmTypes/gen-2-8"
disk = {
size = "20GB"
type = "NETWORK_STANDARD_SSD"
}
}
instances = [
{
count = 1
zone = "ru-central1-a"
}
]
}
resource "mws_mpostgres_cluster_user" "user" {
cluster = mws_mpostgres_cluster.cluster.cluster
user = var.user_name
password = var.user_password
password_version = 1
role = "DB_OWNER_USER"
}
resource "mws_mpostgres_cluster_database" "db" {
cluster = mws_mpostgres_cluster.cluster.cluster
database = var.database_name
owner = mws_mpostgres_cluster_user.user.metadata.id
deletion_protection = false
}
variable "cluster_name" {
type = string
default = "my-pg-cluster"
description = "Postgres cluster name"
}
variable "database_name" {
type = string
default = "example"
description = "Database name"
}
variable "user_name" {
type = string
default = "my-pg-cluster-user"
description = "Database user name"
}
variable "user_password" {
type = string
description = "Database user password"
sensitive = true
}
variable "network_name" {
type = string
default = "my-pg-cluster-network"
description = "Network name"
}
variable "subnet_name" {
type = string
default = "my-pg-cluster-subnet"
description = "Subnet name"
}
variable "subnet_cidr" {
type = string
default = "192.168.10.0/24"
description = "Subnet CIDR"
}Schema
Required
cluster(String) Название или идентификатор кластера.database(String) Имя базы данных.owner(String) Имя владельца
Optional
deletion_protection(Boolean) Защита от удаленияextensions(Attributes List) Список расширений (see below for nested schema)kind(String)lc_collate(String) Порядок сортировки строкlc_ctype(String) Классификация символовmetadata(Attributes) (see below for nested schema)project(String) Путь к проектуtemplate(String) Шаблон для создания базы данныхtimeouts(Attributes) (see below for nested schema)
Read-Only
id(String) The ID of this resource.status(Attributes) (see below for nested schema)
Nested Schema for extensions
Required:
name(String) Имя расширения
Nested Schema for metadata
Optional:
description(String) Описание ресурса.display_name(String) Отображаемое имя. Необязательное поле, можно свободно задавать и изменять для удобства организации ресурсов.
Read-Only:
create_time(String) Дата создания объекта.delete_time(String) Время запроса на удаление ресурса (не фактическое время удаления).id(String) ссылка на типизированный референсpurge_time(String)usages(Attributes List) Связи с другими ресурсами. В зависимости от типа связи, операции над ресурсом могут быть ограничены. (see below for nested schema)
Nested Schema for metadata.usages
Read-Only:
name(String) Имя связи, требуется для модификации коллекцииresource(String) ссылка на ресурсusage_type(String) Тип связи. Помимо стандартных own и use могут быть добавлены специализированные типы для конкретных сервисов
Nested Schema for timeouts
Optional:
create(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).delete(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.update(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
Nested Schema for status
Read-Only:
ready(Attributes) Информация о статусе реконсиляции (see below for nested schema)
Nested Schema for status.ready
Read-Only:
message(String) Описание статусаstate(String) Состояние ресурса