Создание и изменение профиля

Значения параметров соединения для создаваемого или изменяемого профиля могут быть заданы в командной строке, или запрошены в интерактивном режиме из консоли.

Командная строка

Для создания или изменения профиля из командной строки применяются команды profile create, profile update и profile replace.

Используются только те значения, которые непосредственно указаны в командной строке, без обращений к переменным окружения или активированному профилю.

Profile create

Команда profile create создает новый профиль с заданными значениями параметров:

ydb config profile create <profile_name> <connection_options>

В данной команде:

Если профиль с указанным именем существует, то выполнение команды завершится с ошибкой.

Profile replace

Команда profile replace создает или заменяет профиль с заданными значениями параметров:

ydb config profile replace <profile_name> [connection_options]

В данной команде:

  • <profile_name> -- обязательное имя профиля
  • <connection options> -- необязательные параметры соединения для записи в профиле

Если профиль с указанным именем существует, то он будет заменен на новый, содержащий переданные параметры. Если не указан ни один параметр соединения, после исполнения команды профиль будет пустым.

Profile update

Команда profile update изменяет параметры существующего профиля:

ydb config profile update <profile_name> [connection_options] [reset-options]

В данной команде:

  • <profile_name> -- обязательное имя профиля

  • <connection options> -- необязательные параметры соединения для записи в профиле

  • <reset options> -- необязательные опции удаления параметров из существующего профиля. Возможные значения:

    --no-endpoint -- удалить эндпоинт из профиля
    --no-database -- удалить путь базы данных из профиля
    --no-auth -- удалить аутентификационную информацию из профиля
    --no-iam-endpoint -- удалить URL сервера IAM

В профиле будут обновлены те параметры, которые упомянуты в командной строке. Значения не перечисленных в командной строке параметров останутся без изменений.

Примеры

Создание профиля по ранее использованным параметрам соединения

Любая команда выполнения операции в базе данных YDB с явно заданными параметрами соединения может быть преобразована в команду создания профиля перемещением параметров соединения из глобальных опций в опции команды config profile create.

Например, если вы успешно выполнили команду scheme ls со следующими реквизитами:

ydb \
  -e grpcs://example.com:2135 -d /Root/somedatabase --sa-key-file ~/sa_key.json \
  scheme ls

То создать профиль для соединения с использованной базой данных можно следующей командой:

ydb \
  config profile create db1 \
  -e grpcs://example.com:2135 -d /Root/somedatabase --sa-key-file ~/sa_key.json

Теперь можно записать исходную команду гораздо короче:

ydb -p db1 scheme ls

Профиль для соединения с локальной базой данных

Создание/замена профиля local для соединения с локальной БД YDB, развернутой сценариями быстрого развертывания из бинарного файла или в Docker:

ydb config profile replace local --endpoint grpc://localhost:2136 --database /Root/test

Определение способа аутентификации по логину и паролю в профиле local:

ydb config profile update local --user user1 --password-file ~/pwd.txt

Интерактивный режим

Профили создаются и изменяются в интерактивном режиме следующими командами:

ydb init

или

ydb config profile create [profile_name] [connection_options]

В данной команде:

  • [profile_name] -- необязательное имя создаваемого или изменяемого профиля
  • [connection_options] -- необязательные параметры соединения для записи в профиле

Команда init всегда работает в интерактивном режиме, а config profile create запускается в интерактивном режиме в случае, если не указано имя профиля, или не указан ни один из параметров соединения в командной строке.

Начало интерактивного сценария отличается в командах init и profile create:

  1. Выводится перечень существующих профилей (если они есть), и предлагается выбор - создать новый (Create a new) или изменить конфигурацию одного из существующих:

    Please choose profile to configure:
    [1] Create a new profile
    [2] test
    [3] local
    
  2. Если существующих профилей нет, или выбран вариант 1 на предыдущем шаге, то запрашивается имя профиля для создания:

    Please enter name for a new profile: 
    
  3. Если ввести в этот момент имя существующего профиля, то YDB CLI переходит к шагам изменения его параметров, как если бы сразу была выбрана опция с именем этого профиля.

Если в командной строке не указано имя профиля, то оно запрашивается:

Please enter configuration profile name to create or re-configure:

Далее будет последовательно предложено выполнить действия с каждым параметром соединения, доступным для сохранения в профиле:

  • Не сохранять в профиле - Don't save
  • Задать или выбрать значение - Set a new value или Use <вариант>
  • Оставить предыдущее значение - Use current value (опция доступна при изменении существующего профиля)

Пример

Создание нового профиля mydb1:

  1. Выполните команду:

    ydb config profile create mydb1
    
  2. Введите эндпоинт или не сохраняйте этот параметр для профиля:

    Pick desired action to configure endpoint:
     [1] Set a new endpoint value
     [2] Don't save endpoint for profile "mydb1"
    Please enter your numeric choice: 
    
  3. Введите имя базы данных или не сохраняйте этот параметр для профиля:

    Pick desired action to configure database:
     [1] Set a new database value
     [2] Don't save database for profile "mydb1"
    Please enter your numeric choice: 
    
  4. Выберите режим аутентификации или не сохраняйте этот параметр для профиля:

    Pick desired action to configure authentication method:
      [1] Use static credentials (user & password)
      [2] Use IAM token (iam-token) cloud.yandex.ru/docs/iam/concepts/authorization/iam-token
      [3] Use OAuth token of a Yandex Passport user (yc-token). Doesn't work with federative accounts. cloud.yandex.ru/docs/iam/concepts/authorization/oauth-token
      [4] Use metadata service on a virtual machine (use-metadata-credentials) cloud.yandex.ru/docs/compute/operations/vm-connect/auth-inside-vm
      [5] Use service account key file (sa-key-file) cloud.yandex.ru/docs/iam/operations/iam-token/create-for-sa
      [6] Set new OAuth token (ydb-token)
      [7] Don't save authentication data for profile "mydb1"
    Please enter your numeric choice:
    

    Если вы не уверены какой режим аутентификации выбрать, воспользуйтесь рецептом из статьи Аутентификация в разделе "Начало работы".

    Все доступные методы аутентификации описаны в статье Аутентификация. Набор методов и текст подсказок может отличаться от приведенного в данном примере.

    Если выбранный вами метод подразумевает указание дополнительного параметра, вам будет предложено его ввести. Например, если вы выбрали 4 (Use service account key file):

    Please enter Path to service account key file (sa-key-file): 
    
  5. На последнем шаге вам будет предложено активировать созданный профиль для использования по умолчанию. Ответьте 'n' (Нет), пока вы не прочитали статью про Активацию профиля и применение активированного профиля:

    Activate profile "mydb1" to use by default? (current active profile is not set) y/n: n