Перейти к содержимому

База данных в 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"
}
  • cluster (String) Название или идентификатор кластера.
  • database (String) Имя базы данных.
  • owner (String) Имя владельца
  • 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)

Required:

  • name (String) Имя расширения

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)

Read-Only:

  • name (String) Имя связи, требуется для модификации коллекции
  • resource (String) ссылка на ресурс
  • usage_type (String) Тип связи. Помимо стандартных own и use могут быть добавлены специализированные типы для конкретных сервисов

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).

Read-Only:

Read-Only:

  • message (String) Описание статуса
  • state (String) Состояние ресурса