Введение в работу с YDB через Terraform
Terraformtf. HCL очень похож на JSON и оформляется в виде логических блоков в конфигурационных файлах.
С помощью Terraform можно создавать и изменять базы данных YDB, а также управлять ее ресурсами: таблицами, индексами, потоками изменений таблиц. Важно понимать, что конфигурационный файл, который создаётся для управления YDB становится единой точкой управления состоянием базы и все изменения с базой должны производится через него, так как Terraform после каждого успешного применения изменений создает специальный state-файл — текстовое представление текущего состояния базы и при дальнейших изменениях ориентируется на него.
Если внести изменения в состояние БД через конфигурационный файл, а потом еще что-то изменить через Консоль управления или через CLI, то Terraform ничего не узнает об этих изменениях, пока не будут применены команды terraform plan или terraform refresh. Эти команды заставят Terraform сверить текущее состояние ресурсов с тем, что сохранено в state-файле. Но это не означает, что Terraform автоматически примет новые изменения и обновит файл состояния, так как при следующем вызове команды terraform apply, Terraform попытается привести ресурсы к тому состоянию, которое описано в вашем конфигурационном файле, что может привести к перезаписи или удалению ваших внешних изменений. Поэтому очень важно во избежание конфликтов изменений состояния YDB работать через единую точку доступа — конфигурационный файл.
Для подключения терраформа к YDB применяется провайдер yandex_ydb, а для аутентификации используется консольный клиент yc.
В разделе содержатся следующие инструкции:
- Получение данных для аутентификации.
- Установка и настройка Terraform и провайдера для подключения к YDB.
- Создание конфигурационных файлов и подключение к YDB.
- Создание и изменение параметров бессерверной базы данных.
- Создание и изменение параметров выделенной базы данных.
- Создание строковых и колоночных таблиц в базе данных.
- Создание потока изменений таблицы.
- Создание вторичных индексов строковых таблиц.
- Создание топиков.
Ресурсы
Для Managed Service for YDB поддерживаются следующие ресурсы провайдера Terraform:
| Ресурс Terraform | Ресурс Yandex Cloud |
|---|---|
| yandex_ydb_database_dedicated | База данных на выделенных ресурсах (Dedicated) |
| yandex_ydb_database_iam_binding | Привязка прав доступа к базе данных |
| yandex_ydb_database_serverless | Бессерверная база данных (Serverless) |
| yandex_ydb_topic | Топик |
| yandex_ydb_table | Таблица |
| yandex_ydb_table_changefeed | Change Data Capture |
yandex_ydb_table_index |
Вторичный индекс таблицы |
Источники данных
Для Managed Service for YDB поддерживаются следующие источники данных провайдера Terraform:
| Источник данных Terraform | Описание |
|---|---|
| yandex_ydb_database_dedicated | Информация о базе данных на выделенных ресурсах (Dedicated) |
| yandex_ydb_database_serverless | Информация о бессерверной базе данных (Serverless) |