Изменение настроек кластера OpenSearch
После создания кластера вы можете изменить:
- сервисный аккаунт;
- пароль пользователя
admin
; - настройки OpenSearch;
- дополнительные настройки кластера;
- группы безопасности.
Помимо этого вы можете:
- обновить версию OpenSearch;
- изменить конфигурацию групп хостов;
- переместить группы хостов в другую зону доступности.
Изменить сервисный аккаунт
Для привязки сервисного аккаунта к кластеру Managed Service for OpenSearch убедитесь, что вашему аккаунту в Yandex Cloud назначена роль iam.serviceAccounts.user или выше.
Важно
Если для доступа к объектам из Object Storage в кластере уже используется сервисный аккаунт, то его смена может привести к недоступности этих объектов и нарушению работы кластера. Перед изменением настроек сервисного аккаунта убедитесь, что кластер не использует соответствующие объекты.
О настройке сервисного аккаунта читайте в разделе Настройка доступа к Object Storage.
Чтобы изменить сервисный аккаунт, привязанный к кластеру Managed Service for OpenSearch:
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for OpenSearch. - Выберите кластер и нажмите кнопку
Редактировать на панели сверху. - В поле Сервисный аккаунт выберите аккаунт из списка или создайте новый. Подробнее о настройке сервисного аккаунта см. в разделе Настройка доступа к Object Storage.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить сервисный аккаунт, привязанный к кластеру Managed Service for OpenSearch, выполните команду:
yc managed-opensearch cluster update <имя_или_идентификатор_кластера> \
--service-account-name <имя_сервисного_аккаунта>
Имя и идентификатор кластера можно запросить со списком кластеров в каталоге.
Подробнее о настройке сервисного аккаунта см. в разделе Настройка доступа к Object Storage.
Чтобы изменить сервисный аккаунт, привязанный к кластеру Managed Service for OpenSearch:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Полный список доступных для изменения полей конфигурации кластера Managed Service for OpenSearch см. в документации провайдера Terraform
. -
Укажите в поле
service_account_id
идентификатор сервисного аккаунта:resource "yandex_mdb_opensearch_cluster" "<имя_кластера>" { ... service_account_id = "<идентификатор_сервисного_аккаунта>" }
Подробнее о настройке сервисного аккаунта см. в разделе Настройка доступа к Object Storage.
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите 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-opensearch/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "serviceAccountId", "serviceAccountId": "<идентификатор_сервисного_аккаунта>" }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую.В данном случае передается только один параметр.
-
serviceAccountId
— идентификатор сервисного аккаунта, используемого для работы с кластером.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите 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/opensearch/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "service_account_id" ] }, "service_account_id": "<идентификатор_сервисного_аккаунта>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.opensearch.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.В данном случае передается только один параметр.
-
service_account_id
— идентификатор сервисного аккаунта, используемого для работы с кластером.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить пароль пользователя admin
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for OpenSearch. - Выберите кластер и нажмите кнопку
Редактировать на панели сверху. - В поле Пароль пользователя admin укажите новый пароль.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить пароль пользователя admin
для кластера, укажите новый пароль одним из возможных способов:
-
Ввод пароля открытым текстом (менее безопасный способ).
yc managed-opensearch cluster update <имя_или_идентификатор_кластера> \ --admin-password <новый_пароль>
-
Автоматическая генерация пароля. Сгенерированный пароль будет выведен в консоль.
yc managed-opensearch cluster update <имя_или_идентификатор_кластера> \ --generate-admin-password
Имя и идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Полный список доступных для изменения полей конфигурации кластера Managed Service for OpenSearch см. в документации провайдера Terraform
. -
Измените в описании кластера значение поля
admin_password
в блокеconfig
:resource "yandex_mdb_opensearch_cluster" "<имя_кластера>" { ... config { admin_password = "<новый_пароль_пользователя-администратора>" } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите 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-opensearch/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.adminPassword", "configSpec": { "adminPassword": "<новый_пароль>" } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую.В данном случае передается только один параметр.
-
configSpec.adminPassword
— новый пароль пользователяadmin
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите 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/opensearch/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.admin_password" ] }, "config_spec": { "admin_password": "<новый_пароль>" } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.opensearch.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.В данном случае передается только один параметр.
-
config_spec.admin_password
— новый пароль пользователяadmin
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить настройки OpenSearch
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Выполните команду и передайте в ней список настроек, которые хотите изменить:
yc managed-opensearch cluster update <имя_или_идентификатор_кластера> \
--max-clause-count <количество_булевых_выражений> \
--fielddata-cache-size <объем_кучи_JVM> \
--reindex-remote-whitelist <адрес_хоста>:<порт>
Имя и идентификатор кластера можно запросить со списком кластеров в каталоге.
Настройки в команде:
--max-clause-count
— максимально допустимое количество булевых выражений (boolean clauses) в запросе. Подробнее см. в документации OpenSearch .--fielddata-cache-size
— объем кучи JVM, который выделен для структуры данных fielddata. Можно указать абсолютное значение или проценты, например,512mb
или50%
. Подробнее см. в документации OpenSearch .--reindex-remote-whitelist
— список удаленных хостов, из индекса которых нужно скопировать документы для переиндексации. Укажите значение параметра в формате<адрес_хоста>:<порт>
. Если нужно указать несколько хостов, перечислите значения через запятую. Подробнее см. в документации OpenSearch .
-
Получите 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-opensearch/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.opensearchSpec.opensearchConfig_2.maxClauseCount,configSpec.opensearchSpec.opensearchConfig_2.fielddataCacheSize,configSpec.opensearchSpec.opensearchConfig_2.reindexRemoteWhitelist", "configSpec": { "opensearchSpec": { "opensearchConfig_2": { "maxClauseCount": "<количество_булевых_выражений>", "fielddataCacheSize": "<объем_кучи_JVM>", "reindexRemoteWhitelist": "<адрес_хоста>:9200" } } } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую. -
configSpec.opensearchSpec.opensearchConfig_2
— настройки OpenSearch:-
maxClauseCount
— новое максимально допустимое количество булевых выражений. Подробнее см. в документации OpenSearch . -
fielddataCacheSize
— новый объем кучи JVM, выделенный для структуры данных fielddata. Можно указать абсолютное значение или проценты, например,512mb
или50%
. Подробнее см. в документации OpenSearch . -
reindexRemoteWhitelist
— новый список удаленных хостов, из индекса которых нужно скопировать документы для переиндексации. Укажите FQDN хоста и через двоеточие порт 9200. Чтобы указать несколько хостов, перечислите их через запятую, указанную после порта. Подробнее см. в документации OpenSearch .
-
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите 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/opensearch/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.opensearch_spec.opensearch_config_2.max_clause_count", "config_spec.opensearch_spec.opensearch_config_2.fielddata_cache_size", "config_spec.opensearch_spec.opensearch_config_2.reindex_remote_whitelist" ] }, "config_spec": { "opensearch_spec": { "opensearch_config_2": { "max_clause_count": "<количество_булевых_выражений>", "fielddata_cache_size": "<объем_кучи_JVM>", "reindex_remote_whitelist": "<адрес_хоста>:9200" } } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.opensearch.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.В данном случае передается только один параметр.
-
config_spec.opensearch_spec.opensearch_config_2
— настройки OpenSearch:-
max_clause_count
— новое максимально допустимое количество булевых выражений. Подробнее см. в документации OpenSearch . -
fielddata_cache_size
— новый объем кучи JVM, выделенный для структуры данных fielddata. Можно указать абсолютное значение или проценты, например,512mb
или50%
. Подробнее см. в документации OpenSearch . -
reindex_remote_whitelist
— новый список удаленных хостов, из индекса которых нужно скопировать документы для переиндексации. Укажите FQDN хоста и через двоеточие порт 9200. Чтобы указать несколько хостов, перечислите их через запятую, указанную после порта. Подробнее см. в документации OpenSearch .
-
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить дополнительные настройки кластера
-
В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for OpenSearch. -
Выберите кластер и нажмите кнопку
Редактировать на панели сверху. -
Измените дополнительные настройки кластера:
-
Окно обслуживания — настройки времени технического обслуживания:
- Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт произвольное (по умолчанию).
- Чтобы указать предпочтительное время начала обслуживания, выберите пункт по расписанию и укажите нужные день недели и час дня по UTC. Например, можно выбрать время, когда кластер наименее загружен.
Операции по техническому обслуживанию проводятся для включенных и выключенных кластеров. Они могут включать в себя: обновление СУБД, применение патчей и так далее.
-
Защита от удаления — управляет защитой кластера, его баз данных и пользователей от непреднамеренного удаления.
Включенная защита от удаления кластера не помешает подключиться к нему вручную и удалить данные.
-
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Выполните команду и передайте в ней список настроек, которые хотите изменить:
yc managed-opensearch cluster update <имя_или_идентификатор_кластера> \
--maintenance schedule=<тип_технического_обслуживания>,`
`weekday=<день_недели>,`
`hour=<час_дня> \
--delete-protection \
--data-transfer-access=<true_или_false> \
--serverless-access=<true_или_false>
Имя и идентификатор кластера можно запросить со списком кластеров в каталоге.
Настройки в команде:
-
--maintenance
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров):-
Чтобы разрешить проведение технического обслуживания в любое время, укажите
--maintenance schedule=anytime
. -
Чтобы указать предпочтительное время начала обслуживания, укажите
--maintenance schedule=weekly,weekday=<день_недели>,hour=<час_дня_по_UTC>
. Тогда техническое обслуживание будет проходить каждую неделю в обозначенный день и время.Возможные значения параметра
weekday
:mon
,tue
,wed
,thu
,fry
,sat
,sun
. В параметреhour
укажите, во сколько должно завершиться техническое обслуживание. Например, если указать14
, техническое обслуживание будет проходить с 13:00 до 14:00 по UTC.
-
-
--delete-protection
— защита кластера от непреднамеренного удаления пользователем.Включенная защита от удаления кластера не помешает подключиться к нему вручную и удалить данные.
-
--serverless-access
— доступ из Yandex Serverless Containers:true
илиfalse
.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Полный список доступных для изменения полей конфигурации кластера Managed Service for OpenSearch см. в документации провайдера Terraform
. -
Чтобы изменить время технического обслуживания (в т. ч. для выключенных кластеров), укажите настройки в параметре
maintenance_window
:resource "yandex_mdb_opensearch_cluster" "<имя_кластера>" { ... maintenance_window { type = "<частота_технического_обслуживания>" hour = <час_дня> day = "<день_недели>" } }
Укажите в параметрах:
type
— значениеANYTIME
, чтобы разрешить проведение технического обслуживания в любое время, илиWEEKLY
, чтобы проводить техническое обслуживание каждую неделю.hour
— час дня по UTC, когда завершается техническое обслуживание. Например, если указать14
, техническое обслуживание будет проходить с 13:00 до 14:00 по UTC.day
— день недели, когда проводится техническое обслуживание. Доступные значения:MON
,TUE
,WED
,THU
,FRI
,SAT
,SUN
.
-
Чтобы включить защиту кластера от непреднамеренного удаления пользователем вашего облака, добавьте к описанию кластера поле
deletion_protection
со значениемtrue
:resource "yandex_mdb_opensearch_cluster" "<имя_кластера>" { ... deletion_protection = <true_или_false> }
Где
deletion_protection
— защита от удаления кластера.Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите 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-opensearch/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.access,deletionProtection,maintenanceWindow", "configSpec": { "access": { "dataTransfer": <доступ_из_Data_Transfer:_true_или_false>, "serverless": <доступ_из_Serverless_Containers:_true_или_false> } }, "deletionProtection": <защита_от_удаления:_true_или_false>, "maintenanceWindow": { "weeklyMaintenanceWindow": { "day": "<день_недели>", "hour": "<час>" } } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую. -
access
— настройки доступа кластера к следующим сервисам Yandex Cloud:dataTransfer
— Yandex Data Transfer;serverless
— Yandex Serverless Containers.
-
deletionProtection
— защита от удаления кластера, его баз данных и пользователей.Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
-
maintenanceWindow.weeklyMaintenanceWindow
— расписание окна технического обслуживания:day
— день недели в форматеDDD
, когда должно проходить обслуживание.hour
— час в форматеHH
, когда должно проходить обслуживание. Возможные значения: от1
до24
. Задается в часовом поясе UTC.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите 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/opensearch/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.access", "deletion_protection", "maintenance_window" ] }, "config_spec": { "access": { "data_transfer": <доступ_из_Data_Transfer:_true_или_false>, "serverless": <доступ_из_Serverless_Containers:_true_или_false> } }, "deletion_protection": <защита_от_удаления:_true_или_false>, "maintenance_window": { "weekly_maintenance_window": { "day": "<день_недели>", "hour": "<час>" } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.opensearch.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.В данном случае передается только один параметр.
-
access
— настройки доступа кластера к следующим сервисам Yandex Cloud:data_transfer
— Yandex Data Transfer;serverless
— Yandex Serverless Containers.
-
deletion_protection
— защита от удаления кластера, его баз данных и пользователей.Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
-
maintenance_window.weekly_maintenance_window
— расписание окна технического обслуживания:day
— день недели в форматеDDD
, когда должно проходить обслуживание.hour
— час в форматеHH
, когда должно проходить обслуживание. Возможные значения: от1
до24
. Задается в часовом поясе UTC.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить группы безопасности
После того как вы назначите другие группы безопасности, может потребоваться их дополнительная настройка для подключения к кластеру.
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for OpenSearch. - Выберите кластер и нажмите кнопку
Редактировать на панели сверху. - В блоке Сетевые настройки выберите группы безопасности для сетевого трафика кластера.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить список групп безопасности для кластера, укажите нужные группы безопасности в команде:
yc managed-opensearch cluster update <имя_или_идентификатор_кластера> \
--security-group-ids <список_идентификаторов_групп_безопасности>
Если нужно указать несколько групп, перечислите их через запятую.
Имя и идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Полный список доступных для изменения полей конфигурации кластера Managed Service for OpenSearch см. в документации провайдера Terraform
. -
В поле
security_group_ids
перечислите через запятую идентификаторы групп безопасности:resource "yandex_mdb_opensearch_cluster" "<имя_кластера>" { ... security_group_ids = [ "<группы_безопасности>" ] }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите 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-opensearch/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/opensearch/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.opensearch.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.В данном случае передается только один параметр.
-
security_group_ids
— идентификаторы групп безопасности.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.