Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • ИИ для бизнеса
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex Managed Service for YDB
  • Начало работы
  • Управление доступом
  • Метрики Monitoring
  • Аудитные логи Audit Trails
    • Введение в работу с YDB через Terraform
    • Получение данных для аутентификации
    • Установка и настройка Terraform и провайдера для подключения к YDB
    • Создание конфигурационных файлов и подключение к YDB
    • Создание и изменение параметров бессерверной базы данных
    • Создание и изменение параметров выделенной базы данных
    • Создание строковых и колоночных таблиц в базе данных
    • Создание документных таблиц в базе данных
    • Создание потока изменений таблицы
    • Создание вторичных индексов строковых таблиц
    • Управление конфигурацией топиков YDB
  • Вопросы и ответы
  • Публичные материалы
  • Обучающие курсы
  1. Работа с YDB через Terraform
  2. Создание документных таблиц в базе данных

Создание документных таблиц в базе данных

Статья создана
Yandex Cloud
Обновлена 16 мая 2024 г.

Важно

Функциональность создания документных таблиц поддерживается только в бессерверном режиме работы базы данных Yandex Managed Service for YDB.

Документные таблицы Yandex Managed Service for YDB содержат данные в виде набора элементов и совместимы с таблицами Amazon DynamoDB. Поэтому для создания документных таблиц Yandex Managed Service for YDB используется провайдер AWS для Terraform и ресурс aws_dynamodb_table.

Для создания документной таблицы с помощью провайдера AWS потребуется:

  • Сервисный аккаунт с ролью не ниже ydb.editor.
  • Статический ключ доступа.

Вначале необходимо настроить провайдер AWS в файле проекта:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
    yandex = {
      source = "yandex-cloud/yandex"
    }
  }
}

provider "aws" {
  region = "kz1"
  endpoints {
    dynamodb = "https://docapi.serverless.yandexcloud.net/kz1/<cloud_id>/<ydb_database_id>"
  }
  profile = "<profile_name>"
  skip_credentials_validation = true
  skip_metadata_api_check = true
  skip_region_validation = true
  skip_requesting_account_id = true
}

Аргументы провайдера aws:

  • region — регион размещения ресурса. Имеет неизменное значение kz1.
  • endpoints.dynamodb — Document API эндпоинт базы данных. Адрес эндпоинта указан в консоли управления: Yandex Managed Service for YDB → раздел Обзор → секция Соединение → параметр Document API эндпоинт.
  • profile — название секции в файле ~/.aws/credentials, содержащей aws_access_key_id (идентификатор статического ключа доступа) и aws_secret_access_key (содержимое секретного ключа).
  • skip_credentials_validation — пропуск проверки учетных данных через STS (Amazon Web Services Security Token Service) API. Будет пропущена проверка токенов.
  • skip_metadata_api_check — пропуск проверки аутентификации Terraform через API метаданных AWS.
  • skip_region_validation — пропуск проверки указанного названия региона.
  • skip_requesting_account_id — пропуск запроса идентификатора аккаунта.

Указанный набор параметров skip_ обязателен, так как он обеспечивает совместимость API запросов провайдера AWS к Yandex Cloud.

Затем можно указать ресурс aws_dynamodb_table для создания документной таблицы:

resource "aws_dynamodb_table" "test" {
  name         = "<table_name>"
  billing_mode = "PAY_PER_REQUEST"

  hash_key  = "<attribute_name_1>"
  range_key = "<attribute_name_2>"

  attribute {
    name = "<attribute_name_1>"
    type = "<attribute_type>"
  }

  attribute {
    name = "<attribute_name_2>"
    type = "<attribute_type>"
  }
}

Аргументы ресурса aws_dynamodb_table:

  • name — название таблицы. Таблица может быть размещена в иерархическом пространстве имен внутри YDB. Например, чтобы поместить таблицу в директорию my-test-doctable относительно корня базы, нужно задать следующий путь: my-test-doctable/table-name. Если директория не существует, то она будет создана автоматически.
  • billing_mode — модель расчета платы за операции чтения и записи. Поддерживается только модель PAY_PER_REQUEST.
  • hash_key — атрибут, который будет использоваться как ключ хеширования. Определяется в блоке attribute.
  • range_key — атрибут, который будет использоваться как ключ диапазона (сортировки). Определяется в блоке attribute.
  • attribute — блок с набором вложенных определений атрибутов. Состоит из полей name (название атрибута) и type (тип данных атрибута): S — строка, N — число.

При первом запуске сценария необходимо выполнить команду terraform init для инициализации провайдера AWS. Далее можно выполнять команды terraform plan и terraform apply. В результате выполнения команд будет создана документная таблица с названием, указанным в параметре name.

Была ли статья полезна?

Предыдущая
Создание строковых и колоночных таблиц в базе данных
Следующая
Создание потока изменений таблицы
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»