[Документация Yandex Cloud](../../index.md) > [Yandex Managed Service for YDB](../index.md) > Работа с YDB через Terraform > Создание и изменение параметров бессерверной базы данных

# Создание и изменение параметров бессерверной базы данных

Для создания бессерверной базы данных используется ресурс `yandex_ydb_database_serverless`.

## Описание ресурса yandex_ydb_database_serverless {#database_serverless_description}

Откройте созданный конфигурационный файл своего проекта (в нем уже должен быть [блок с инициализацией провайдера](configure.md)) и добавьте в него следующий блок кода:

```tf
resource "yandex_ydb_database_serverless" "database1" {
  name                = "test-ydb-serverless"
  deletion_protection = true

  serverless_database {
    enable_throttling_rcu_limit = false
    provisioned_rcu_limit       = 10
    storage_size_limit          = 50
    throttling_rcu_limit        = 0
  }
}
```

Обратите внимание, что строка инициализации ресурса состоит из трех частей: 
* Ключевого слова `resource`;
* Названия ресурса, указанного в кавычках - `"yandex_ydb_database_serverless"`;
* Внутреннего идентификатора ресурса в рамках конфигурационного файла - `"database1"` (не название базы данных в облаке).

Идентификатор ресурса совместно с названием ресурса используются в качестве адреса для получения поля создаваемого ресурса. Этот прием мы покажем дальше в документации, а сейчас опишем свойства полей ресурса `yandex_ydb_database_serverless`:
* `name` — имя базы данных (строчные латинские буквы, цифры и дефисы. Первый символ — буква, последний символ — не дефис. Длина: от 3 до 63 симв.). Обязательный параметр. 
* `deletion_protection` — защита базы данных от удаления (не защищает от удаления содержимое базы). Значение по умолчанию `false`.
* `enable_throttling_rcu_limit` — включить ограничение пропускной способности. Необязательный параметр. Значение по умолчанию `false`.
* `throttling_rcu_limit` — ограничение потребления Request Units в секунду. Необязательный параметр. Значение по умолчанию `0`.
* `provisioned_rcu_limit` — установленное значение показывает, какое потребление Request Units в секунду оплачивается по часам по тарифу. Ноль выключает почасовую оплату. Необязательный параметр. Значение по умолчанию `0`.
* `storage_size_limit` — объем данных, ГБ. Необязательный параметр. Значение по умолчанию `50`.

Сохраните файл и выполните команду `terraform validate`. Эта команда проверит все файлы в директории проекта на ошибки. Если ошибок нет — в терминал будет выведено сообщение: `Success! The configuration is valid`. Если ошибки будут найдены — в терминал будет выведен блок кода, содержащий ошибки и конкретные строчки кода, где содержится ошибка. 

Если ошибок нет — выполните команду `terraform plan`. Эта команда подготовит план изменений инфраструктуры и выведет отчет о том, какие ресурсы будут созданы. На этом этапе создание реальных облачных ресурсов не происходит. Применить изменения и создать реальные облачные ресурсы можно командой `terraform apply`. Для подтверждения действия нужно ввести в терминал `yes`.

Terraform создаст все требуемые ресурсы. Проверить изменения можно в [консоли управления](https://console.yandex.cloud/) или с помощью команды CLI: `yc ydb database get <имя_БД>`. В терминал будут выведены сведения о созданной базе данных.

Если требуется изменить параметры созданной базы данных, нужно отредактировать конфигурационный файл и выполнить последовательность команд `terraform validate`, `terraform plan` и `terraform apply`. Например, изменить можно название базы данных (name), лимит объема данных (`storage_size_limit`) и так далее. Будьте осторожны, изменение идентификатора базы (в нашем случае `"database1"`) приведет к ее пересозданию с потерей данных.