Изменение настроек кластера PostgreSQL
После создания кластера вы можете:
-
Настроить серверы согласно документации PostgreSQL
. -
Переместить кластер в другой каталог.
Подробнее о других изменениях кластера:
Изменить класс хостов
Примечание
Некоторые настройки PostgreSQL зависят от выбранного класса хостов.
При смене класса хостов:
- Кластер из одного хоста будет недоступен несколько минут, соединения с БД будут прерваны.
- В кластере из нескольких хостов сменится мастер. Каждый хост по очереди будет остановлен и обновлен, остановленный хост будет недоступен несколько минут.
- Подключение по особому FQDN не гарантирует стабильность соединения с БД: пользовательские сессии могут быть прерваны.
Рекомендуется изменять класс хостов только во время отсутствия рабочей нагрузки на кластер.
- Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.
- Выберите кластер и нажмите кнопку
Редактировать на панели сверху. - В блоке Класс хоста выберите нужный класс для хостов PostgreSQL.
- Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить класс хостов для кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-postgresql cluster update --help
-
Запросите список доступных классов хостов (в колонке
ZONE IDS
указаны зоны доступности, в которых можно выбрать соответствующий класс):yc managed-postgresql resource-preset list
+-----------+--------------------------------+-------+----------+ | ID | ZONE IDS | CORES | MEMORY | +-----------+--------------------------------+-------+----------+ | s1.micro | ru-central1-a, ru-central1-b, | 2 | 8.0 GB | | | ru-central1-d | | | | ... | +-----------+--------------------------------+-------+----------+
-
Укажите нужный класс в команде изменения кластера:
yc managed-postgresql cluster update <имя_или_идентификатор_кластера> \ --resource-preset <идентификатор_класса_хостов>
Managed Service for PostgreSQL запустит операцию изменения класса хостов для кластера.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Managed Service for PostgreSQL см. в документации провайдера Terraform
. -
Измените в описании кластера Managed Service for PostgreSQL значение атрибута
resource_preset_id
в блокеconfig.resources
:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... config { resources { resource_preset_id = "<класс_хоста>" ... } } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for PostgreSQL:
- создание, в том числе путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут;
- удаление — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts
, например:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... timeouts { create = "1h30m" # Полтора часа update = "2h" # 2 часа delete = "30m" # 30 минут } }
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.update и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.resources.resourcePresetId", "configSpec": { "resources": { "resourcePresetId": "<класс_хостов>" } } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую.В данном случае передается только один параметр.
-
configSpec.resources.resourcePresetId
— новый класс хостов.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService/Update и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.resources.resource_preset_id" ] }, "config_spec": { "resources": { "resource_preset_id": "<класс_хостов>" } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.postgresql.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.В данном случае передается только один параметр.
-
config_spec.resources.resource_preset_id
— новый класс хостов.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить настройки PostgreSQL
Вы можете изменить настройки СУБД для хостов вашего кластера.
Важно
- Вы не можете менять настройки PostgreSQL с помощью команд SQL.
- Некоторые настройки PostgreSQL зависят от выбранного класса хостов или размера хранилища.
- Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.
- Выберите кластер и нажмите кнопку
Редактировать на панели сверху. - Измените настройки PostgreSQL, нажав кнопку Настроить в блоке Настройки СУБД.
- Нажмите кнопку Сохранить.
- Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить настройки PostgreSQL:
-
Посмотрите полный список настроек, установленных для кластера:
yc managed-postgresql cluster get <имя_или_идентификатор_кластера> --full
-
Посмотрите описание команды CLI для изменения конфигурации кластера:
yc managed-postgresql cluster update-config --help
-
Установите нужные значения параметров:
Все поддерживаемые параметры перечислены в формате запроса для метода update, в поле
postgresqlConfig_<версия_PostgreSQL>
. Чтобы указать имя параметра в вызове CLI, преобразуйте его имя из видаlowerCamelCase
вsnake_case
, например, параметрmaxPreparedTransactions
из запроса к API преобразуется вmax_prepared_transactions
для команды CLI:yc managed-postgresql cluster update-config <имя_или_идентификатор_кластера> \ --set <имя_параметра_1>=<значение_1>,<имя_параметра_2>=<значение_2>,...
Managed Service for PostgreSQL запустит операцию по изменению настроек кластера.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Managed Service for PostgreSQL см. в документации провайдера Terraform
. -
Измените в описании кластера Managed Service for PostgreSQL значения параметров в блоке
config.postgresql_config
. Если такого блока нет — создайте его.resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... config { ... postgresql_config = { max_connections = <максимальное_количество_соединений> enable_parallel_hash = <true_или_false> vacuum_cleanup_index_scale_factor = <число_от_0_до_1> ... } } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for PostgreSQL:
- создание, в том числе путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут;
- удаление — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts
, например:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... timeouts { create = "1h30m" # Полтора часа update = "2h" # 2 часа delete = "30m" # 30 минут } }
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.update и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.postgresqlConfig_<версия_PostgreSQL>.<настройка_1>,...,configSpec.postgresqlConfig_<версия_PostgreSQL>.<настройка_N>", "configSpec": { "postgresqlConfig_<версия_PostgreSQL>": { "<настройка_1>": "<значение_1>", "<настройка_2>": "<значение_2>", ... "<настройка_N>": "<значение_N>" } } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую.В данном случае перечислите все изменяемые настройки PostgreSQL.
-
configSpec.postgresqlConfig_<версия_PostgreSQL>
— набор настроек PostgreSQL. Укажите каждую настройку на отдельной строке через запятую.Список версий PostgreSQL, доступных для параметра, см. в описании метода. Описание и возможные значения настроек см. в разделе Настройки на уровне кластера.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService/Update и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.postgresql_config_<версия_PostgreSQL>.<настройка_1>", "config_spec.postgresql_config_<версия_PostgreSQL>.<настройка_2>", ..., "config_spec.postgresql_config_<версия_PostgreSQL>.<настройка_N>" ] }, "config_spec": { "postgresql_config_<версия_PostgreSQL>": { "<настройка_1>": "<значение_1>", "<настройка_2>": "<значение_2>", ... "<настройка_N>": "<значение_N>" } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.postgresql.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.В данном случае перечислите все изменяемые настройки PostgreSQL.
-
config_spec.postgresql_config_<версия_PostgreSQL>
— набор настроек PostgreSQL. Укажите каждую настройку на отдельной строке через запятую.Список версий PostgreSQL, доступных для параметра, см. в описании метода. Описание и возможные значения настроек см. в разделе Настройки на уровне кластера.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить дополнительные настройки кластера
Важно
Изменение дополнительных настроек приведет к перезапуску кластера. Исключением являются настройки окна обслуживания и защиты от удаления.
-
Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.
-
Выберите кластер и нажмите кнопку
Редактировать на панели сверху. -
Измените дополнительные настройки кластера:
-
Начало резервного копирования (UTC) — промежуток времени, в течение которого начинается резервное копирование кластера. Время указывается по UTC в 24-часовом формате. По умолчанию —
22:00 - 23:00
UTC. -
Срок хранения автоматических резервных копий, дней — время, в течение которого нужно хранить созданные автоматически резервные копии. Если для такой копии истекает срок хранения, то она удаляется. Значение по умолчанию — 7 дней. Подробнее см. в разделе Резервные копии.
Изменение срока хранения затрагивает как новые автоматические резервные копии, так и уже существующие. Например, изначальный срок хранения был 7 дней. Оставшееся время жизни отдельной автоматической резервной копии при таком сроке — 1 день. При увеличении срока хранения до 9 дней оставшееся время жизни этой резервной копии будет уже 3 дня.
Автоматические резервные копии кластера хранятся заданное количество дней, а созданные вручную — бессрочно. После удаления кластера все копии хранятся 7 дней.
-
Окно обслуживания — настройки времени технического обслуживания:
- Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт произвольное (по умолчанию).
- Чтобы указать предпочтительное время начала обслуживания, выберите пункт по расписанию и укажите нужные день недели и час дня по UTC. Например, можно выбрать время, когда кластер наименее загружен.
Операции по техническому обслуживанию проводятся для включенных и выключенных кластеров. Они могут включать в себя: обновление СУБД, применение патчей и так далее.
-
Доступ из DataLens — опция разрешает анализировать данные из кластера в сервисе Yandex DataLens.
-
Доступ из WebSQL — опция разрешает выполнять SQL-запросы к базам данных кластера из консоли управления Yandex Cloud с помощью сервиса Yandex WebSQL.
-
Доступ из Serverless — включите эту опцию, чтобы разрешить доступ к кластеру из сервиса Yandex Cloud Functions. Подробнее о настройке доступа см. в документации Cloud Functions.
-
Сбор статистики — опция разрешает использовать в кластере инструмент Диагностика производительности. Если опция включена, настройте также Интервал сбора сессий и Интервал сбора запросов при помощи ползунков. Единицы измерения обеих настроек — секунды.
Эта функциональность находится на стадии Preview.
-
Автоматическое переключение мастера — включите эту опцию, чтобы при смене мастера источник репликации для всех хостов-реплик автоматически переключился на новый хост-мастер. Подробнее см. в разделе Репликация.
При удалении хоста-мастера новый мастер будет выбран автоматически независимо от значения этой опции.
Внимание
Если опция Автоматическое переключение мастера выключена, при выходе хоста-мастера из строя запустить выборы нового мастера или назначить эту роль одной из реплик придется вручную.
-
Режим работы менеджера подключений — выберите один из режимов работы менеджера подключений.
-
Защита от удаления — управляет защитой кластера, его баз данных и пользователей от непреднамеренного удаления.
По умолчанию при создании пользователей и БД значение параметра наследуется от кластера. Значение также можно задать вручную, подробнее см. в разделах Управление пользователями и Управление БД.
Если параметр изменен на работающем кластере, новое значение унаследуют только пользователи и БД с защитой Как у кластера.
Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
-
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить дополнительные настройки кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-postgresql cluster update --help
-
Выполните команду, передав список настроек, которые хотите изменить:
yc managed-postgresql cluster update <имя_или_идентификатор_кластера> \ --backup-window-start <время_начала_резервного_копирования> \ --backup-retain-period-days=<срок_хранения_автоматических_резервных_копий_в_днях> \ --datalens-access=<true_или_false> \ --maintenance-window type=<тип_технического_обслуживания>,` `day=<день_недели>,` `hour=<час_дня> \ --websql-access=<true_или_false> \ --deletion-protection \ --connection-pooling-mode=<режим_работы_менеджера_подключений> \ --serverless-access=<true_или_false> \ --yandexquery-access=<доступ_через_Query> \ --performance-diagnostics enabled=<true_или_false>,` `sessions-sampling-interval=<интервал_сбора_сессий>,` `statements-sampling-interval=<интервал_сбора_запросов>
Вы можете изменить следующие настройки:
--backup-window-start
— время начала резервного копирования кластера, задается по UTC в форматеHH:MM:SS
. Если время не задано, резервное копирование начнется в 22:00 UTC.
-
--backup-retain-period-days
– срок хранения автоматических резервных копий (в днях). -
--datalens-access
— разрешает доступ из DataLens. Значение по умолчанию —false
. Подробнее о настройке подключения см. в разделе Подключение к кластеру из DataLens. -
--maintenance-window
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров), гдеtype
— тип технического обслуживания:anytime
(по умолчанию) — в любое время.weekly
— по расписанию. При задании этого значения укажите день недели и час дня:day
— день недели в форматеDDD
:MON
,TUE
,WED
,THU
,FRI
,SAT
илиSUN
.hour
— час дня по UTC в форматеHH
: от1
до24
.
-
--websql-access
— разрешает выполнять SQL-запросы к базам данных кластера из консоли управления Yandex Cloud с помощью сервиса Yandex WebSQL. Значение по умолчанию —false
. -
--serverless-access
— разрешает доступ к кластеру из сервиса Yandex Cloud Functions. Значение по умолчанию —false
. Подробнее о настройке доступа см. в документации Cloud Functions. -
--yandexquery-access
— разрешает доступ к кластеру из сервиса Yandex Query. Функциональность находится на стадии Preview и предоставляется по запросу. -
--autofailover
– управляет настройкой автоматической смены мастера. Подробнее см. в разделе Репликация. Значение по умолчанию —true
. -
--connection-pooling-mode
— указывает режим работы менеджера подключений:SESSION
,TRANSACTION
илиSTATEMENT
. -
--deletion-protection
— защита кластера, его баз данных и пользователей от непреднамеренного удаления.По умолчанию при создании пользователей и БД значение параметра наследуется от кластера. Значение также можно задать вручную, подробнее см. в разделах Управление пользователями и Управление БД.
Если параметр изменен на работающем кластере, новое значение унаследуют только пользователи и БД с защитой Как у кластера.
Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
-
--performance-diagnostics
— настройки сбора статистики:enabled
— значениеtrue
активирует сбор статистики. Значение по умолчанию —false
.sessions-sampling-interval
— интервал сбора сессий, в секундах. Допустимые значения — от1
до86400
.statements-sampling-interval
— интервал сбора запросов, в секундах. Допустимые значения — от60
до86400
.
Имя кластера можно получить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Managed Service for PostgreSQL см. в документации провайдера Terraform
. -
Чтобы изменить время начала резервного копирования, добавьте к описанию кластера Managed Service for PostgreSQL блок
config.backup_window_start
.resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... config { backup_window_start { hours = <час_начала_резервного_копирования> minutes = <минута_начала_резервного_копирования> } ... } }
-
Чтобы разрешить доступ из Yandex DataLens и выполнение SQL-запросов из консоли управления с помощью Yandex WebSQL, измените значения соответствующих полей в блоке
config.access
:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... config { access { data_lens = <доступ_из_DataLens> web_sql = <выполнение_SQL-запросов_из_консоли_управления> ... } ... }
Где:
data_lens
— доступ из DataLens:true
илиfalse
.web_sql
— выполнение SQL-запросов из консоли управления с помощью Yandex WebSQL:true
илиfalse
.
-
Чтобы изменить режим работы менеджера подключений, добавьте к описанию кластера Managed Service for PostgreSQL блок
config.pooler_config
:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... config { pooler_config { pool_discard = <параметр_Odyssey> pooling_mode = "<режим_работы>" } ... } }
Где:
pool_discard
— параметр Odysseypool_discard
:true
илиfalse
.pooling_mode
— режим работы:SESSION
,TRANSACTION
илиSTATEMENT
.
-
Чтобы настроить время технического обслуживания (в т. ч. для выключенных кластеров), добавьте к описанию кластера блок
maintenance_window
:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... maintenance_window { type = <тип_технического_обслуживания> day = <день_недели> hour = <час_дня> } ... }
Где:
type
— тип технического обслуживания. Принимает значения:ANYTIME
— в любое время.WEEKLY
— по расписанию.
day
— день недели для типаWEEKLY
в форматеDDD
. Например,MON
.hour
— час дня по UTC для типаWEEKLY
в форматеHH
. Например,21
.
-
Чтобы настроить сбор статистики, добавьте в блок
config
блокperformance_diagnostics
:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... config { ... performance_diagnostics { enabled = <активация_сбора_статистики> sessions_sampling_interval = <интервал_сбора_сессий> statements_sampling_interval = <интервала_сбора_запросов> } ... } ... }
Где:
enabled
— активация сбора статистики:true
илиfalse
.sessions_sampling_interval
— интервал сбора сессий от1
до86400
секунд.statements_sampling_interval
— интервала сбора запросов от60
до86400
секунд.
-
Чтобы включить защиту кластера, его баз данных и пользователей от непреднамеренного удаления, добавьте к описанию кластера поле
deletion_protection
со значениемtrue
:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... deletion_protection = <защита_от_удаления> }
Где
deletion_protection
— защита от удаления кластера, его баз данных и пользователей:true
илиfalse
.По умолчанию при создании пользователей и БД значение параметра наследуется от кластера. Значение также можно задать вручную, подробнее см. в разделах Управление пользователями и Управление БД.
Если параметр изменен на работающем кластере, новое значение унаследуют только пользователи и БД с защитой Как у кластера.
Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for PostgreSQL:
- создание, в том числе путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут;
- удаление — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts
, например:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... timeouts { create = "1h30m" # Полтора часа update = "2h" # 2 часа delete = "30m" # 30 минут } }
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.update и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.poolerConfig,configSpec.backupWindowStart,configSpec.backupRetainPeriodDays,configSpec.access,configSpec.performanceDiagnostics.sessionsSamplingInterval,configSpec.performanceDiagnostics.statementsSamplingInterval,maintenanceWindow,deletionProtection", "configSpec": { "poolerConfig": { "poolingMode": "<режим_управления_соединениями>", "poolDiscard": <сброс_состояния_клиентов_после_каждой_транзакции:_true_или_false> }, "backupWindowStart": { "hours": "<часы>", "minutes": "<минуты>", "seconds": "<секунды>", "nanos": "<наносекунды>" }, "backupRetainPeriodDays": "<количество_дней>", "access": { "dataLens": <доступ_к_DataLens:_true_или_false>, "webSql": <доступ_к_WebSQL:_true_или_false>, "serverless": <доступ_к_Cloud_Functions:_true_или_false>, "dataTransfer": <доступ_к_Data_Transfer:_true_или_false>, "yandexQuery": <доступ_к_Query:_true_или_false> }, "performanceDiagnostics": { "enabled": <активация_сбора_статистики:_true_или_false>, "sessionsSamplingInterval": "<интервал_сбора_сессий>", "statementsSamplingInterval": "<интервал_сбора_запросов>" } }, "maintenanceWindow": { "weeklyMaintenanceWindow": { "day": "<день_недели>", "hour": "<час>" } }, "deletionProtection": <защита_от_удаления:_true_или_false> }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую. -
configSpec
— настройки кластера:-
poolerConfig
— настройки менеджера подключений:poolingMode
— режим работы менеджера подключений. Возможные значения:SESSION
,TRANSACTION
иSTATEMENT
. Подробнее о каждом режиме читайте в разделе Управление соединениями.poolDiscard
— должны ли клиенты терять свое состояние после каждой транзакции. Соответствует параметру server_reset_query_always для менеджера подключений PgBouncer .
-
backupWindowStart
— настройки окна резервного копирования.В параметре укажите время, когда начинать резервное копирование. Возможные значения параметров:
hours
— от0
до23
часов;minutes
— от0
до59
минут;seconds
— от0
до59
секунд;nanos
— от0
до999999999
наносекунд.
-
backupRetainPeriodDays
— сколько дней хранить резервную копию кластера. Возможные значения: от7
до60
дней. -
access
— настройки доступа кластера к следующим сервисам Yandex Cloud:dataLens
— Yandex DataLens;webSql
— Yandex WebSQL;serverless
— Yandex Cloud Functions;dataTransfer
— Yandex Data Transfer;yandexQuery
— Yandex Query.
-
performanceDiagnostics
— настройки для сбора статистики:enabled
— активация сбора статистики.sessionsSamplingInterval
— интервал сбора сессий. Возможные значения: от1
до86400
секунд.statementsSamplingInterval
— интервал сбора запросов. Возможные значения: от60
до86400
секунд.
-
-
maintenanceWindow
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров). ВmaintenanceWindow
передайте один из двух параметров:-
anytime
— техническое обслуживание происходит в любое время. -
weeklyMaintenanceWindow
— техническое обслуживание происходит раз в неделю, в указанное время:day
— день недели в форматеDDD
;hour
— час в форматеHH
. Возможные значения: от1
до24
часов.
-
-
deletionProtection
— защита от удаления кластера, его баз данных и пользователей.По умолчанию при создании пользователей и БД значение параметра наследуется от кластера. Значение также можно задать вручную, подробнее см. в разделах Управление пользователями и Управление БД.
Если параметр изменен на работающем кластере, новое значение унаследуют только пользователи и БД с защитой Как у кластера.
Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService/Update и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.pooler_config", "config_spec.backup_window_start", "config_spec.backup_retain_period_days", "config_spec.access", "config_spec.performance_diagnostics.sessions_sampling_interval", "config_spec.performance_diagnostics.statements_sampling_interval", "maintenance_window", "deletion_protection" ] }, "config_spec": { "pooler_config": { "pooling_mode": "<режим_управления_соединениями>", "pool_discard": <сброс_состояния_клиентов_после_каждой_транзакции:_true_или_false> }, "backup_window_start": { "hours": "<часы>", "minutes": "<минуты>", "seconds": "<секунды>", "nanos": "<наносекунды>" }, "backup_retain_period_days": "<количество_дней>", "access": { "data_lens": <доступ_к_DataLens:_true_или_false>, "web_sql": <доступ_к_WebSQL:_true_или_false>, "serverless": <доступ_к_Cloud_Functions:_true_или_false>, "data_transfer": <доступ_к_Data_Transfer:_true_или_false>, "yandex_query": <доступ_к_Query:_true_или_false> }, "performance_diagnostics": { "enabled": <активация_сбора_статистики:_true_или_false>, "sessions_sampling_interval": "<интервал_сбора_сессий>", "statements_sampling_interval": "<интервал_сбора_запросов>" } }, "maintenance_window": { "weekly_maintenance_window": { "day": "<день_недели>", "hour": "<час>" } }, "deletion_protection": <защита_от_удаления:_true_или_false> }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.postgresql.v1.ClusterService.Update
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
. -
config_spec
— настройки кластера:-
pooler_config
— настройки менеджера подключений:pooling_mode
— режим работы менеджера подключений. Возможные значения:SESSION
,TRANSACTION
иSTATEMENT
. Подробнее о каждом режиме читайте в разделе Управление соединениями.pool_discard
— должны ли клиенты терять свое состояние после каждой транзакции. Соответствует параметру server_reset_query_always для менеджера подключений PgBouncer .
-
backup_window_start
— настройки окна резервного копирования.В параметре укажите время, когда начинать резервное копирование. Возможные значения параметров:
hours
— от0
до23
часов;minutes
— от0
до59
минут;seconds
— от0
до59
секунд;nanos
— от0
до999999999
наносекунд.
-
backup_retain_period_days
— сколько дней хранить резервную копию кластера. Возможные значения: от7
до60
дней. -
access
— настройки доступа кластера к следующим сервисам Yandex Cloud:data_lens
— Yandex DataLens;web_sql
— Yandex WebSQL;serverless
— Yandex Cloud Functions;data_transfer
— Yandex Data Transfer;yandex_query
— Yandex Query.
-
performance_diagnostics
— настройки для сбора статистики:enabled
— активация сбора статистики.sessions_sampling_interval
— интервал сбора сессий. Возможные значения: от1
до86400
секунд.statements_sampling_interval
— интервал сбора запросов. Возможные значения: от60
до86400
секунд.
-
-
maintenance_window
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров). Вmaintenance_window
передайте один из двух параметров:-
anytime
— техническое обслуживание происходит в любое время. -
weekly_maintenance_window
— техническое обслуживание происходит раз в неделю, в указанное время:day
— день недели в форматеDDD
;hour
— час в форматеHH
. Возможные значения: от1
до24
часов.
-
-
deletion_protection
— защита от удаления кластера, его баз данных и пользователей.По умолчанию при создании пользователей и БД значение параметра наследуется от кластера. Значение также можно задать вручную, подробнее см. в разделах Управление пользователями и Управление БД.
Если параметр изменен на работающем кластере, новое значение унаследуют только пользователи и БД с защитой Как у кластера.
Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Вручную переключить хост-мастер
В отказоустойчивом кластере Managed Service for PostgreSQL из нескольких хостов вы можете переключить роль мастера с текущего хоста-мастера на одну из реплик. После этой операции текущий хост-мастер станет хостом-репликой для нового мастера.
Особенности переключения мастера в Managed Service for PostgreSQL:
- Нельзя сделать мастером реплику, для которой явно указан источник потока репликации.
- Если явно не указать имя хоста-реплики, мастер переключится на одну из кворумных реплик.
Подробнее см. в разделе Репликация.
Чтобы переключить мастер:
- Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.
- Нажмите на имя нужного кластера и выберите вкладку
Хосты. - Нажмите кнопку
Переключить мастер.- Чтобы переключить мастер на одну из кворумных реплик, оставьте опцию Выбрать хост-мастер автоматически включенной.
- Чтобы переключить мастер на конкретную реплику, выключите опцию Выбрать хост-мастер автоматически и затем выберите нужную реплику из выпадающего списка.
- Нажмите кнопку Переключить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Выполните команду:
yc managed-postgresql cluster start-failover <имя_или_идентификатор_кластера> \
--host <имя_хоста-реплики>
Имя хоста-реплики можно запросить со списком хостов в кластере, имя кластера — со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Managed Service for PostgreSQL см. в документации провайдера Terraform
. -
Укажите имя хоста-реплики, на которую нужно переключиться, в параметре
host_master_name
.resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... host_master_name = "<имя_хоста-реплики>" }
Где
host_master_name
— имя хоста-реплики: атрибутname
соответствующего блокаhost
. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for PostgreSQL:
- создание, в том числе путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут;
- удаление — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts
, например:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... timeouts { create = "1h30m" # Полтора часа update = "2h" # 2 часа delete = "30m" # 30 минут } }
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.startFailover и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>:startFailover' \ --data '{ "hostName": "<FQDN_хоста>" }'
Где
hostName
— FQDN реплики, которая становится мастером.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService/StartFailover и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "host_name": "<FQDN_хоста>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.postgresql.v1.ClusterService.StartFailover
Где
host_name
— FQDN реплики, которая становится мастером.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Переместить кластер
- Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.
- Нажмите на значок
справа в строке кластера, который вы хотите переместить. - Выберите пункт Переместить.
- Выберите каталог, в который вы хотите переместить кластер.
- Нажмите кнопку Переместить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы переместить кластер:
-
Посмотрите описание команды CLI для перемещения кластера:
yc managed-postgresql cluster move --help
-
Укажите каталог назначения в команде перемещения кластера:
yc managed-postgresql cluster move <идентификатор_кластера> \ --destination-folder-name=<имя_каталога_назначения>
Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.move и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>:move' \ --data '{ "destinationFolderId": "<идентификатор_каталога>" }'
Где
destinationFolderId
— идентификатор каталога, куда перемещается кластер. Идентификатор можно получить со списком каталогов в облаке.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService/Move и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "destination_folder_id": "<идентификатор_каталога>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.postgresql.v1.ClusterService.Move
Где
destination_folder_id
— идентификатор каталога, куда перемещается кластер. Идентификатор можно получить со списком каталогов в облаке.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
После перемещения кластер продолжит использовать облачную сеть из исходного каталога. Если вы хотите разместить кластер в другой облачной сети, воспользуйтесь функцией восстановления из резервной копии и укажите необходимую сеть для копии кластера.
Если вы хотите переместить кластер в другую зону доступности, обратитесь к инструкции. В результате вы перенесете хосты кластера.
Изменить группы безопасности
- Перейдите на страницу каталога и выберите сервис Managed Service for PostgreSQL.
- Выберите кластер и нажмите кнопку
Редактировать на панели сверху. - В блоке Сетевые настройки выберите группы безопасности для сетевого трафика кластера.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить список групп безопасности для кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-postgresql cluster update --help
-
Укажите нужные группы безопасности в команде изменения кластера:
yc managed-postgresql cluster update <имя_или_идентификатор_кластера> \ --security-group-ids <список_идентификаторов_групп_безопасности>
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Managed Service for PostgreSQL см. в документации провайдера Terraform
. -
Измените значение параметра
security_group_ids
в описании кластера:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... security_group_ids = [ <список_идентификаторов_групп_безопасности> ] }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for PostgreSQL:
- создание, в том числе путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут;
- удаление — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts
, например:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... timeouts { create = "1h30m" # Полтора часа update = "2h" # 2 часа delete = "30m" # 30 минут } }
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.update и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "securityGroupIds", "securityGroupIds": [ "<идентификатор_группы_безопасности_1>", "<идентификатор_группы_безопасности_2>", ... "<идентификатор_группы_безопасности_N>" ] }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую.В данном случае передается только один параметр.
-
securityGroupIds
— новый список групп безопасности, представленный в виде элементов массива.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService/Update и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask
(в виде массива строкpaths[]
).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }
grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "security_group_ids" ] }, "security_group_ids": [ "<идентификатор_группы_безопасности_1>", "<идентификатор_группы_безопасности_2>", ... "<идентификатор_группы_безопасности_N>" ] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.postgresql.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.В данном случае передается только один параметр.
-
security_group_ids
— новый список групп безопасности, представленный в виде элементов массива.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Важно
Может потребоваться дополнительная настройка групп безопасности для подключения к кластеру.