yandex-cloud-lite
TypeScript icon, indicating that this package has built-in type declarations

1.5.0 • Public • Published

yandex-cloud-lite

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

Зачем

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

  •  можно работать с любыми сервисами, как только для них появляются proto-файлы. Например, API Gateway (#25) и Cloud logging (#34)

  •  вместо устаревшего пакета grpc используется @grpc/grpc-js (см. #18)

  •  для генерации js/ts вместо protobufjs используется google-protobuf. Обе либы не без изъянов, но есть мнение, что protobufjs умирает (хотя в комментах не все с этим согласны)

  •  нет зависимости от aws-sdk (см. #30)

Установка

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

Readme

Keywords

none

Package Sidebar

Install

npm i yandex-cloud-lite

Weekly Downloads

15

Version

1.5.0

License

MIT

Unpacked Size

34.8 MB

Total Files

1276

Last publish

Collaborators

  • vitalets