Управление базами данных в Yandex StoreDoc
Вы можете добавлять и удалять базы данных, а также просматривать информацию о них.
Получить список баз данных в кластере
- В консоли управления
выберите каталог. - Перейдите
в сервис Yandex StoreDoc. - Нажмите на имя нужного кластера, затем выберите вкладку Базы данных.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы получить список баз данных в кластере, выполните команду:
yc managed-mongodb database list
--cluster-name <имя_кластера>
Имя кластера можно запросить со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Database.List и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>/databases'Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом DatabaseService.List и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/database_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.DatabaseService.ListИдентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить информацию о базе данных
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы получить информацию о конкретной базе данных:
-
Посмотрите описание команды CLI для получения информации о базе данных:
yc managed-mongodb database get --help -
Получите информацию о базе данных, выполнив команду:
yc managed-mongodb database get <имя_БД> \ --cluster-id=<идентификатор_кластера>Имя базы данных можно получить со списком баз данных в кластере, а идентификатор кластера — со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Database.Get и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>/databases/<имя_БД>'Идентификатор кластера можно получить со списком кластеров в каталоге, а имя базы данных — со списком баз данных в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом DatabaseService.Get и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/database_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "database_name": "<имя_БД>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.DatabaseService.GetИдентификатор кластера можно получить со списком кластеров в каталоге, а имя базы данных — со списком баз данных в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Создать базу данных
Примечание
В каждом кластере вы можете создать не более 1000 баз данных.
-
В консоли управления
выберите каталог. -
Перейдите
в сервис Yandex StoreDoc. -
Нажмите на имя нужного кластера.
-
Выберите вкладку Базы данных.
-
Нажмите кнопку Создать базу данных.
-
Введите имя для базы данных и нажмите кнопку Создать.
Имя базы может содержать латинские буквы, цифры, нижнее подчеркивание и дефис. Максимальная длина имени — 63 символа. Имена
config,local,adminиmdb_internalзарезервированы для собственных нужд Yandex StoreDoc. Создавать БД с этими именами нельзя. -
Настройте защиту базы данных от непреднамеренного удаления. Возможные значения:
- Как у кластера.
- Включена.
- Выключена.
Защита от удаления действует только на уровне конкретной базы данных. При удалении кластера будут удалены все БД, в том числе защищенные от удаления.
-
Назначьте роли, разрешающие доступ к созданной базе данных, нужным пользователям кластера.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы создать базу данных в кластере, выполните команду:
yc managed-mongodb database create <имя_БД> \
--cluster-name <имя_кластера> \
--deletion-protection=<защитить_БД_от_удаления>
Где:
-
<имя_БД>— имя базы данных.Имя базы может содержать латинские буквы, цифры, нижнее подчеркивание и дефис. Максимальная длина имени — 63 символа. Имена
config,local,adminиmdb_internalзарезервированы для собственных нужд Yandex StoreDoc. Создавать БД с этими именами нельзя. -
--cluster-name— имя кластера, которое можно запросить со списком кластеров в каталоге. -
--deletion-protection— защита базы данных от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для базы данных используется значение соответствующей настройки кластера. Если защита включена (true), удалить базу данных нельзя.Защита от удаления действует только на уровне конкретной базы данных. При удалении кластера будут удалены все БД, в том числе защищенные от удаления.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкция по созданию такого файла приведена в разделе Создание кластера.
-
Добавьте ресурс
yandex_mdb_mongodb_database:resource "yandex_mdb_mongodb_database" "<имя_БД>" { cluster_id = "<идентификатор_кластера>" name = "<имя_БД>" deletion_protection = <защитить_БД_от_удаления> }Где:
-
cluster_id— идентификатор кластера, который можно запросить со списком кластеров в каталоге. -
name— имя базы данных.Имя базы может содержать латинские буквы, цифры, нижнее подчеркивание и дефис. Максимальная длина имени — 63 символа. Имена
config,local,adminиmdb_internalзарезервированы для собственных нужд Yandex StoreDoc. Создавать БД с этими именами нельзя. -
--deletion-protection— защита базы данных от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для базы данных используется значение соответствующей настройки кластера. Если защита включена (true), удалить базу данных нельзя.Защита от удаления действует только на уровне конкретной базы данных. При удалении кластера будут удалены все БД, в том числе защищенные от удаления.
-
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее читайте в документации провайдера Terraform.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Database.Create и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>/databases' \ --data '{ "databaseSpec": { "name": "<имя_БД>", "deletionProtection": <защитить_БД_от_удаления> } }'Где:
-
<идентификатор_кластера>— идентификатор кластера, который можно запросить со списком кластеров в каталоге. -
databaseSpec.name— имя базы данных.Имя базы может содержать латинские буквы, цифры, нижнее подчеркивание и дефис. Максимальная длина имени — 63 символа. Имена
config,local,adminиmdb_internalзарезервированы для собственных нужд Yandex StoreDoc. Создавать БД с этими именами нельзя. -
databaseSpec.deletionProtection— защита базы данных от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для базы данных используется значение соответствующей настройки кластера. Если защита включена (true), удалить базу данных нельзя.Защита от удаления действует только на уровне конкретной базы данных. При удалении кластера будут удалены все БД, в том числе защищенные от удаления.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом DatabaseService.Create и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/database_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "database_spec": { "name": "<имя_БД>", "deletion_protection": <защитить_БД_от_удаления> } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.DatabaseService.CreateГде:
-
cluster_id— идентификатор кластера, который можно запросить со списком кластеров в каталоге. -
database_spec.name— имя базы данных.Имя базы может содержать латинские буквы, цифры, нижнее подчеркивание и дефис. Максимальная длина имени — 63 символа. Имена
config,local,adminиmdb_internalзарезервированы для собственных нужд Yandex StoreDoc. Создавать БД с этими именами нельзя. -
database_spec.deletion_protection— защита базы данных от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для базы данных используется значение соответствующей настройки кластера. Если защита включена (true), удалить базу данных нельзя.Защита от удаления действует только на уровне конкретной базы данных. При удалении кластера будут удалены все БД, в том числе защищенные от удаления.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
После создания базы данных выдайте разрешение на доступ к ней нужным пользователям кластера.
Изменить настройки базы данных
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы изменить настройки базы данных, выполните команду:
yc managed-mongodb database update <имя_БД> \
--cluster-name <имя_кластера> \
--deletion-protection=<защитить_БД_от_удаления>
Где:
<имя_БД>— имя базы данных, которое можно запросить со списком баз данных в кластере.--cluster-name— имя кластера, которое можно запросить со списком кластеров в каталоге.--deletion-protection— защита базы данных от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для базы данных используется значение соответствующей настройки кластера. Если защита включена (true), удалить базу данных нельзя.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкция по созданию такого файла приведена в разделе Создание кластера.
-
Найдите ресурс
yandex_mdb_mongodb_database. -
Чтобы включить или отключить защиту пользователя от непреднамеренного удаления, измените значение поля
deletion_protection:resource "yandex_mdb_mongodb_database" "<имя_БД>" { ... deletion_protection = <защитить_БД_от_удаления> ... }Где
deletion_protection— защита базы данных от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для базы данных используется значение соответствующей настройки кластера. Если защита включена (true), удалить базу данных нельзя. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее читайте в документации провайдера Terraform.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Database.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-mongodb/v1/clusters/<идентификатор_кластера>/databases/<имя_БД>' \ --data '{ "updateMask": "deletionProtection", "deletionProtection": <защитить_БД_от_удаления> }'Где:
<идентификатор_кластера>— имя кластера, которое можно запросить со списком кластеров в каталоге.<имя_БД>— имя базы данных, которое можно запросить со списком баз данных в кластере.updateMask— перечень изменяемых параметров в одну строку через запятую.deletionProtection— защита базы данных от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для базы данных используется значение соответствующей настройки кластера. Если защита включена (true), удалить базу данных нельзя.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом DatabaseService.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/mongodb/v1/database_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "database_name": "<имя_БД>", "update_mask": { "paths": [ "deletion_protection" ] }, "deletion_protection": <защитить_БД_от_удаления> }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.DatabaseService.UpdateГде:
cluster_id— идентификатор кластера, который можно запросить со списком кластеров в каталоге.database_name— имя базы данных, которое можно запросить со списком баз данных в кластере.update_mask— перечень изменяемых параметров в виде массива строкpaths[].deletion_protection— защита базы данных от непреднамеренного удаления:trueилиfalse. По умолчанию значение не задано, и для базы данных используется значение соответствующей настройки кластера. Если защита включена (true), удалить базу данных нельзя.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Удалить базу данных
Примечание
Перед удалением базы данных отключите ее защиту от удаления.
- В консоли управления
выберите каталог. - Перейдите
в сервис Yandex StoreDoc. - Нажмите на имя нужного кластера и выберите вкладку Базы данных.
- Нажмите на значок
в строке нужной БД и выберите пункт Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы удалить базу данных, выполните команду:
yc managed-mongodb database delete <имя_БД>
--cluster-name <имя_кластера>
Имя кластера можно запросить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкция по созданию такого файла приведена в разделе Создание кластера.
-
Удалите ресурс
yandex_mdb_mongodb_databaseс именем удаляемой базы данных. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее читайте в документации провайдера Terraform.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Database.Delete и выполните запрос, например с помощью cURL
:curl \ --request DELETE \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/v1/clusters/<идентификатор_кластера>/databases/<имя_БД>'Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом DatabaseService.Delete и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/database_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "database_name": "<имя_БД>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.DatabaseService.DeleteИдентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Важно
Прежде чем создать новую базу с тем же именем, дождитесь завершения операции удаления, иначе будет восстановлена удаляемая база. Статус операции можно получить вместе со списком операций в кластере.