Введение в работу с 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) |