Запуск тестового приложения

Подключитесь к базе данных и запустите тестовые приложения для Python и Go для знакомства с работой YDB SDK.

Подробный разбор кода тестовых приложений читайте в разделе Работа с SDK.

Подключитесь к базе данных

Чтобы подключиться к базе данных:

  1. Создайте базу данных в Яндекс.Облаке.

  2. Создайте виртуальную машину в Яндекс.Облаке.

  3. Сохраните публичный IP-адрес виртуальной машины. Для этого перейдите в свойства виртуальной машины или воспользуйтесь интерфейсом командной строки.

  4. Для аутентификации в базе данных создайте сервисный аккаунт и назначьте ему роли viewer и editor.

  5. Перейдите в раздел Сервисные аккаунты своего каталога и выберите необходимый сервисный аккаунт в списке. Сохраните идентификатор сервисного аккаунта.

  6. Создайте авторизованные ключи доступа к сервисному аккаунту и сохраните их.

  7. Перейдите в свойства базы данных и сохраните значения эндпоинта и идентификатора базы, приведенные в блоке Эндпоинт.

  8. Чтобы подключиться к серверу БД, необходим SSL-сертификат. Подготовить все нужные аутентификационные данные можно, например, так:

    $ mkdir ~/.ydb
    $ wget "https://storage.yandexcloud.net/cloud-certs/CA.pem" -O ~/.ydb/CA.pem
    

Запустите тестовое приложение

Чтобы запустить приложение и подключиться к базе:

  1. Подключитесь к виртуальной машине по SSH:

    $ ssh <имя_пользователя>@<публичный_IP-адрес_виртуальной машины>
    
  2. Установите pip3:

    sudo apt update
    sudo apt install python3-pip
    
  3. Установите Yandex.Cloud Python SDK:

    git clone https://github.com/yandex-cloud/python-sdk.git
    sudo pip3 install -e python-sdk/
    
  4. Установите YDB Python SDK и библиотеку iso8601:

    git clone https://github.com/yandex-cloud/ydb-python-sdk.git
    sudo pip3 install -e ydb-python-sdk/
    sudo pip3 install iso8601
    
  5. Установите переменные окружения, необходимые для аутентификации приложения:

    export SA_ENDPOINT=iam.api.cloud.yandex.net:443
    export SA_PRIVATE_KEY_FILE=/home/path/to/private.key
    export SA_ID=YOUR_SA_ID
    export SA_ACCESS_KEY_ID=YOUR_ACCESS_KEY_ID
    export YDB_SSL_ROOT_CERTIFICATES_FILE=~/.ydb/CA.pem
    
    • SA_ENDPOINT — эндпоинт IAM, установите значение iam.api.cloud.yandex.net:443
    • SA_PRIVATE_KEY_FILE — локальный путь к файлу с закрытым авторизованным ключом
    • SA_ID — идентификатор сервисного аккаунта
    • SA_ACCESS_KEY_ID — идентификатор открытого авторизованного ключа
    • YDB_SSL_ROOT_CERTIFICATES_FILE — путь до файла с SSL-сертификатом
  6. Запустите тестовое приложение basic_example_v1 из репозитория ydb-python-sdk, указав в качестве параметров запуска параметры, полученные ранее:

    cd ./ydb-python-sdk/kikimr/public/sdk/python/examples/basic_example_v1
    python3 __main__.py -e endpoint -d database
    

Результат выполнения приложения:

> describe table: series
column, name: series_id , Uint64
column, name: title , Utf8
column, name: series_info , Utf8
column, name: release_date , Uint64
column, name: comment , Utf8

> select_simple_transaction:
series, id:  1 , title:  IT Crowd , release date:  b'2006-02-03'

> select_prepared_transaction:
episode title: To Build a Better Beta , air date: b'2016-06-05'

> select_prepared_transaction:
episode title: Bachman's Earnings Over-Ride , air date: b'2016-06-12'

> explicit TCL call

> select_prepared_transaction:
episode title: TBD , air date: b'2019-05-10'
  1. Подключитесь к виртуальной машине по SSH:

    $ ssh <имя_пользователя>@<публичный_IP-адрес_виртуальной машины>
    
  2. Установите YDB Go SDK:

    go get -u github.com/yandex-cloud/ydb-go-sdk
    go get github.com/dgrijalva/jwt-go
    
  3. Установите переменные окружения, необходимые для аутентификации приложения:

    export SA_ENDPOINT=iam.api.cloud.yandex.net:443
    export SA_PRIVATE_KEY_FILE=/home/path/to/private.key
    export SA_ID=YOUR_SA_ID
    export SA_ACCESS_KEY_ID=YOUR_ACCESS_KEY_ID
    
    • SA_ENDPOINT — эндпоинт IAM, установите значение iam.api.cloud.yandex.net:443
    • SA_PRIVATE_KEY_FILE — локальный путь к файлу с закрытым авторизованным ключом
    • SA_ID — идентификатор сервисного аккаунта
    • SA_ACCESS_KEY_ID — идентификатор открытого авторизованного ключа
  4. Скомпилируйте тестовое приложение basic_example_v1:

    go build github.com/yandex-cloud/ydb-go-sdk/example/basic_example_v1/
    
  5. Запустите тестовое приложение basic_example_v1, указав в качестве параметров запуска значения эндпоинта и идентификатора базы полученные ранее, а также путь к сохраненному SSL-сертификату:

    ./basic_example_v1 -endpoint endpoint -database database -root-ca ~/.ydb/CA.pem -tls
    

Результат выполнения приложения:

inspecting Database

> describe_table_options:

> describe table: /global/path/todatabase/series
column, name: Optional<Uint64>, series_id
column, name: Optional<Utf8>, title
column, name: Optional<Utf8>, series_info
column, name: Optional<Uint64>, release_date
column, name: Optional<Utf8>, comment

> select_simple_transaction: 1 IT Crowd 2006-02-03