vitalets / yandex-cloud-lite

Минимальный Node.js клиент для доступа к API сервисов Yandex Cloud по GRPC
1 stars 0 forks source link

yandex-cloud-lite

Минимальный Node.js клиент для доступа к API сервисов Yandex Cloud по GRPC.

Зачем

Отличия от официального клиента nodejs-sdk:

Установка

npm i yandex-cloud-lite

Пример использования

import { Session } from 'yandex-cloud-lite';
import { FunctionServiceClient } from 'yandex-cloud-lite/generated/yandex/cloud/serverless/functions/v1/function_service_grpc_pb';

listFunctions();

async function listFunctions() {
  const session = new Session({ authKeyFile: '.auth-key.json' });
  const client = session.createClient(FunctionServiceClient);
  const res = await client.list({ folderId: '<your_folder_id>' });
  console.log(res.toObject());
}

/*
OUTPUT:
{
  functionsList: [
    {
      id: 'xxx',
      folderId: 'yyy',
      createdAt: [Object],
      name: 'test-fn',
      description: 'Test function',
      labelsMap: [],
      logGroupId: 'zzz',
      httpInvokeUrl: 'https://functions.yandexcloud.net/xxx',
      status: 2
    },
    ...
  ],
  nextPageToken: ''
}
*/

Создание сессии

Создать сессию можно одним из следующих способов:

  1. Используя готовый iamToken (например в cloud function):

    const session = new Session({ iamToken: '<iam_token>' });
  2. Используя файл авторизованных ключей (для сервисного аккаунта):

    const session = new Session({ authKeyFile: '.auth-key.json' });

    Создать такой файл можно командой:

    yc iam key create --service-account-name <service-account-name> -o .auth-key.json
  3. Используя конфиг yc cli:

    const session = new Session({ useCliConfig: true });
  4. Используя oauth token своего аккаунта на Яндексе:

    const session = new Session({ oauthToken: '<your_oauth_token>' });

Лицензия

MIT @ Vitaliy Potapov