Изменение настроек кластера PostgreSQL
После создания кластера вы можете:
-
Настроить серверы согласно документации PostgreSQL
. -
Переместить кластер в другой каталог.
Примечание
Любые изменения возможны только на запущенном кластере.
Подробнее о других изменениях кластера:
Изменить класс хостов
Примечание
Некоторые настройки PostgreSQL зависят от выбранного класса хостов.
При смене класса хостов:
- Кластер из одного хоста будет недоступен несколько минут, соединения с БД будут прерваны.
- В кластере из нескольких хостов сменится мастер. Каждый хост по очереди будет остановлен и обновлен, остановленный хост будет недоступен несколько минут.
- Подключение по особому FQDN не гарантирует стабильность соединения с БД: пользовательские сессии могут быть прерваны.
Рекомендуется изменять класс хостов только во время отсутствия рабочей нагрузки на кластер.
- Перейдите в сервис Managed Service for PostgreSQL.
- Выберите кластер и нажмите кнопку
Редактировать на панели сверху. - В блоке Класс хоста выберите нужный класс для хостов PostgreSQL.
- Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --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 | kz1-a, kz1-b, | 2 | 8.0 GB | | | kz1-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.yandexcloud.kz/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.yandexcloud.kz: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), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --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.yandexcloud.kz/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.yandexcloud.kz: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:00UTC. -
Срок хранения автоматических резервных копий, дней — время, в течение которого нужно хранить созданные автоматически резервные копии. Если для такой копии истекает срок хранения, то она удаляется. Значение по умолчанию — 7 дней. Подробнее см. в разделе Резервные копии.
Изменение срока хранения затрагивает как новые автоматические резервные копии, так и уже существующие. Например, изначальный срок хранения был 7 дней. Оставшееся время жизни отдельной автоматической резервной копии при таком сроке — 1 день. При увеличении срока хранения до 9 дней оставшееся время жизни этой резервной копии будет уже 3 дня.
Автоматические резервные копии кластера хранятся заданное количество дней, а созданные вручную — бессрочно. После удаления кластера все копии хранятся 7 дней.
-
Окно обслуживания — настройки времени технического обслуживания:
- Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт произвольное (по умолчанию).
- Чтобы указать предпочтительное время начала обслуживания, выберите пункт по расписанию и укажите нужные день недели и час дня по UTC. Например, можно выбрать время, когда кластер наименее загружен.
Операции по техническому обслуживанию проводятся для включенных и выключенных кластеров. Они могут включать в себя: обновление СУБД, применение патчей и так далее.
-
Доступ из DataLens — опция разрешает анализировать данные из кластера в сервисе Yandex DataLens.
-
Доступ из консоли управления — опция разрешает выполнять SQL-запросы к базам данных кластера из консоли управления Yandex Cloud.
-
Доступ из Yandex Query — опция разрешает выполнять YQL-запросы к базам данных кластера из сервиса Yandex Query.
-
Доступ из Serverless — включите эту опцию, чтобы разрешить доступ к кластеру из сервиса Yandex Cloud Functions. Подробнее о настройке доступа см. в документации Cloud Functions.
-
Автоматическое переключение мастера — если эта опция включена, при смене мастера источник репликации для всех хостов-реплик автоматически переключится на новый хост-мастер. Подробнее см. в разделе Репликация.
При удалении хоста-мастера новый мастер будет выбран автоматически независимо от значения этой опции.
Внимание
Если опция Автоматическое переключение мастера выключена, при выходе хоста-мастера из строя запустить выборы нового мастера или назначить эту роль одной из реплик придется вручную.
-
Режим работы менеджера подключений — выберите один из режимов работы менеджера подключений.
-
Защита от удаления — защита от удаления кластера, его баз данных и пользователей.
По умолчанию при создании пользователей и БД значение параметра наследуется от кластера. Значение также можно задать вручную, подробнее см. в разделах Управление пользователями и Управление БД.
Если параметр изменен на работающем кластере, новое значение унаследуют только пользователи и БД с защитой Как у кластера.
Включенная защита кластера от удаления не помешает подключиться к нему вручную и удалить данные.
-
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --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=<разрешить_доступ_из_DataLens> \ --maintenance-window type=<тип_технического_обслуживания>,` `day=<день_недели>,` `hour=<час_дня> \ --websql-access=<разрешить_доступ_из_WebSQL> \ --deletion-protection \ --connection-pooling-mode=<режим_работы_менеджера_подключений> \ --serverless-access=<разрешить_доступ_из_Serverless_Containers> \ --yandexquery-access=<разрешить_доступ_из_Yandex_Query> \ --performance-diagnostics enabled=<активировать_сбор_статистики>,` `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— день недели:MON,TUE,WED,THU,FRI,SATилиSUN.hour— час дня по UTC: от1до24.
-
--websql-access— разрешает выполнять SQL-запросы к базам данных кластера из консоли управления Yandex Cloud. Значение по умолчанию —false. -
--serverless-access— разрешает доступ к кластеру из сервиса Yandex Cloud Functions. Значение по умолчанию —false. Подробнее о настройке доступа см. в документации Cloud Functions. -
--yandexquery-access— разрешает доступ к кластеру из сервиса Yandex Query. Функциональность находится на стадии Preview и предоставляется по запросу. -
--autofailover– управляет настройкой автоматической смены мастера. Подробнее см. в разделе Репликация. Значение по умолчанию —true. -
--connection-pooling-mode— указывает режим работы менеджера подключений:SESSION,TRANSACTIONилиSTATEMENT. -
--deletion-protection— защита от удаления кластера, его баз данных и пользователей.По умолчанию при создании пользователей и БД значение параметра наследуется от кластера. Значение также можно задать вручную, подробнее см. в разделах Управление пользователями и Управление БД.
Если параметр изменен на работающем кластере, новое значение унаследуют только пользователи и БД с защитой Как у кластера.
Включенная защита кластера от удаления не помешает подключиться к нему вручную и удалить данные.
Имя кластера можно получить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл 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-запросов из консоли управления, измените значения соответствующих полей в блоке
config.access:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... config { access { data_lens = <разрешить_доступ_из_DataLens> web_sql = <разрешить_доступ_из_WebSQL> ... } ... }Где:
data_lens— доступ из DataLens:trueилиfalse.web_sql— выполнение SQL-запросов из консоли управления:trueилиfalse.
-
Чтобы изменить режим работы менеджера подключений, добавьте к описанию кластера Managed Service for PostgreSQL блок
config.pooler_config:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... config { pooler_config { pool_discard = <сбрасывать_состояния_клиентов_после_каждой_транзакции> pooling_mode = "<режим_работы>" } ... } }Где:
pool_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:MON,TUE,WED,THU,FRI,SATилиSUN.hour— час дня по UTC для типаWEEKLY: от1до24.
-
Чтобы включить защиту кластера, его баз данных и пользователей от непреднамеренного удаления, добавьте к описанию кластера поле
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-токен>" -
Создайте файл
body.jsonи добавьте в него следующее содержимое:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask(одной строкой через запятую).{ "updateMask": "configSpec.poolerConfig,configSpec.backupWindowStart,configSpec.backupRetainPeriodDays,configSpec.access,configSpec.performanceDiagnostics.sessionsSamplingInterval,configSpec.performanceDiagnostics.statementsSamplingInterval,maintenanceWindow,deletionProtection", "configSpec": { "poolerConfig": { "poolingMode": "<режим_управления_соединениями>", "poolDiscard": <сбрасывать_состояния_клиентов_после_каждой_транзакции> }, "backupWindowStart": { "hours": "<часы>", "minutes": "<минуты>", "seconds": "<секунды>", "nanos": "<наносекунды>" }, "backupRetainPeriodDays": "<количество_дней>", "access": { "dataLens": <разрешить_доступ_из_DataLens>, "webSql": <разрешить_доступ_из_WebSQL>, "serverless": <разрешить_доступ_из_Cloud_Functions>, "dataTransfer": <разрешить_доступ_из_Data_Transfer>, "yandexQuery": <разрешить_доступ_из_Query> }, "performanceDiagnostics": { "enabled": <активировать_сбор_статистики>, "sessionsSamplingInterval": "<интервал_сбора_сессий>", "statementsSamplingInterval": "<интервал_сбора_запросов>" } }, "maintenanceWindow": { "weeklyMaintenanceWindow": { "day": "<день_недели>", "hour": "<час>" } }, "deletionProtection": <защитить_кластер_от_удаления> }Где:
-
updateMask— перечень изменяемых параметров в одну строку через запятую. -
configSpec— настройки кластера:-
poolerConfig— настройки менеджера подключений:poolingMode— режим работы менеджера подключений. Возможные значения:SESSION,TRANSACTIONиSTATEMENT. Подробнее о каждом режиме читайте в разделе Управление соединениями PostgreSQL.poolDiscard— должны ли клиенты терять свое состояние после каждой транзакции:trueилиfalse. Соответствует параметру 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.
Возможные значения настроек:
trueилиfalse.
-
-
maintenanceWindow— настройки времени технического обслуживания (в т. ч. для выключенных кластеров). ВmaintenanceWindowпередайте один из двух параметров:-
anytime— техническое обслуживание происходит в любое время. -
weeklyMaintenanceWindow— техническое обслуживание происходит раз в неделю, в указанное время:day— день недели в форматеDDD;hour— час в форматеHH. Возможные значения: от1до24часов.
-
-
deletionProtection— защита от удаления кластера, его баз данных и пользователей:trueилиfalse.По умолчанию при создании пользователей и БД значение параметра наследуется от кластера. Значение также можно задать вручную, подробнее см. в разделах Управление пользователями и Управление БД.
Если параметр изменен на работающем кластере, новое значение унаследуют только пользователи и БД с защитой Как у кластера.
Включенная защита кластера от удаления не помешает подключиться к нему вручную и удалить данные.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Воспользуйтесь методом Cluster.Update и выполните запрос, например, с помощью cURL
:curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-postgresql/v1/clusters/<идентификатор_кластера>' \ --data "@body.json" -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Создайте файл
body.jsonи добавьте в него следующее содержимое:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask(в виде массива строкpaths[]).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }{ "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": <сбрасывать_состояния_клиентов_после_каждой_транзакции> }, "backup_window_start": { "hours": "<часы>", "minutes": "<минуты>", "seconds": "<секунды>", "nanos": "<наносекунды>" }, "backup_retain_period_days": "<количество_дней>", "access": { "data_lens": <разрешить_доступ_из_DataLens>, "web_sql": <разрешить_доступ_из_WebSQL>, "serverless": <разрешить_доступ_из_Cloud_Functions>, "data_transfer": <разрешить_доступ_из_Data_Transfer>, "yandex_query": <разрешить_доступ_из_Query> }, "performance_diagnostics": { "enabled": <активировать_сбор_статистики>, "sessions_sampling_interval": "<интервал_сбора_сессий>", "statements_sampling_interval": "<интервал_сбора_запросов>" } }, "maintenance_window": { "weekly_maintenance_window": { "day": "<день_недели>", "hour": "<час>" } }, "deletion_protection": <защитить_кластер_от_удаления> }Где:
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[]. -
config_spec— настройки кластера:-
pooler_config— настройки менеджера подключений:pooling_mode— режим работы менеджера подключений. Возможные значения:SESSION,TRANSACTIONиSTATEMENT. Подробнее о каждом режиме читайте в разделе Управление соединениями PostgreSQL.pool_discard— должны ли клиенты терять свое состояние после каждой транзакции:trueилиfalse. Соответствует параметру 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.
Возможные значения настроек:
trueилиfalse.
-
-
maintenance_window— настройки времени технического обслуживания (в т. ч. для выключенных кластеров). Вmaintenance_windowпередайте один из двух параметров:-
anytime— техническое обслуживание происходит в любое время. -
weekly_maintenance_window— техническое обслуживание происходит раз в неделю, в указанное время:day— день недели в форматеDDD;hour— час в форматеHH. Возможные значения: от1до24часов.
-
-
deletion_protection— защита от удаления кластера, его баз данных и пользователей:trueилиfalse.По умолчанию при создании пользователей и БД значение параметра наследуется от кластера. Значение также можно задать вручную, подробнее см. в разделах Управление пользователями и Управление БД.
Если параметр изменен на работающем кластере, новое значение унаследуют только пользователи и БД с защитой Как у кластера.
Включенная защита кластера от удаления не помешает подключиться к нему вручную и удалить данные.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например, с помощью 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 @ \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.postgresql.v1.ClusterService.Update \ < body.json -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Вручную переключить хост-мастер
В отказоустойчивом кластере Managed Service for PostgreSQL из нескольких хостов вы можете переключить роль мастера с текущего хоста-мастера на одну из реплик. После этой операции текущий хост-мастер станет хостом-репликой для нового мастера.
Особенности переключения мастера в Managed Service for PostgreSQL:
- Нельзя сделать мастером реплику, для которой явно указан источник потока репликации.
- Если явно не указать имя хоста-реплики, мастер переключится на одну из кворумных реплик.
Подробнее см. в разделе Репликация.
Чтобы переключить мастер:
- Перейдите в сервис Managed Service for PostgreSQL.
- Нажмите на имя нужного кластера и выберите вкладку
Хосты. - Нажмите кнопку
Переключить мастер.- Чтобы переключить мастер на одну из кворумных реплик, оставьте опцию Выбрать хост-мастер автоматически включенной.
- Чтобы переключить мастер на конкретную реплику, выключите опцию Выбрать хост-мастер автоматически и затем выберите нужную реплику из выпадающего списка.
- Нажмите кнопку Переключить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --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.yandexcloud.kz/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.yandexcloud.kz:443 \ yandex.cloud.mdb.postgresql.v1.ClusterService.StartFailoverГде
host_name— FQDN реплики, которая становится мастером.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Переместить кластер
- Перейдите в сервис Managed Service for PostgreSQL.
- Нажмите на значок
справа в строке кластера, который вы хотите переместить. - Выберите пункт Переместить.
- Выберите каталог, в который вы хотите переместить кластер.
- Нажмите кнопку Переместить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы переместить кластер:
-
Посмотрите описание команды CLI для перемещения кластера:
yc managed-postgresql cluster move --help -
Укажите каталог назначения в команде перемещения кластера:
yc managed-postgresql cluster move <идентификатор_кластера> \ --destination-folder-name=<имя_каталога_назначения>Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените или добавьте в описании кластера Managed Service for PostgreSQL значение параметра
folder_id:resource "yandex_mdb_postgresql_cluster" "<имя_кластера>" { ... folder_id = "<идентификатор_каталога_назначения>" } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Ограничения по времени
Провайдер 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.Move и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/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.yandexcloud.kz:443 \ yandex.cloud.mdb.postgresql.v1.ClusterService.MoveГде
destination_folder_id— идентификатор каталога, куда перемещается кластер. Идентификатор можно получить со списком каталогов в облаке.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
После перемещения кластер продолжит использовать облачную сеть из исходного каталога. Если вы хотите разместить кластер в другой облачной сети, воспользуйтесь функцией восстановления из резервной копии и укажите необходимую сеть для копии кластера.
Если вы хотите переместить кластер в другую зону доступности, обратитесь к инструкции. В результате вы перенесете хосты кластера.
Изменить группы безопасности
- Перейдите в сервис Managed Service for PostgreSQL.
- Выберите кластер и нажмите кнопку
Редактировать на панели сверху. - В блоке Сетевые настройки выберите группы безопасности для сетевого трафика кластера.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --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.yandexcloud.kz/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.yandexcloud.kz:443 \ yandex.cloud.mdb.postgresql.v1.ClusterService.UpdateГде:
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[].В данном случае передается только один параметр.
-
security_group_ids— новый список групп безопасности, представленный в виде элементов массива.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Важно
Может потребоваться дополнительная настройка групп безопасности для подключения к кластеру.