Yandex Cloud SDK lite
npm install yandex-cloud-lite* ✅ можно работать с любыми сервисами, как только для них появляются 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
`Пример использования
`ts
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: '' });
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):
`ts
const session = new Session({ iamToken: '' });
`2. Используя файл авторизованных ключей (для сервисного аккаунта):
`ts
const session = new Session({ authKeyFile: '.auth-key.json' });
`
Создать такой файл можно командой:
`
yc iam key create --service-account-name -o .auth-key.json
`
3. Используя конфиг yc cli:
`ts
const session = new Session({ useCliConfig: true });
`4. Используя oauth token своего аккаунта на Яндексе:
`ts
const session = new Session({ oauthToken: '' });
``