ycnf
v1.1.2
Published
CLI utility for managing Yandex Cloud Functions
Maintainers
Readme
YCNF - Yandex Cloud Functions CLI
CLI утилита для управления функциями Yandex Cloud.
Установка
Глобальная установка (рекомендуется)
npm install -g ycnfЛокальная установка
npm install ycnf
npx ycnf --helpБыстрый старт
- В вашем проекте создайте файл
.env:
echo "YC_FOLDER_ID=your_folder_id_here" > .env- Создайте файл
.functionconfig.json:
# Скопируйте пример из установленного пакета
cp node_modules/ycnf/functionconfig.example.json .functionconfig.jsonОтредактируйте
.functionconfig.jsonпод ваши нуждыИспользуйте CLI:
ycnf create # Создание нового проекта из шаблона
ycnf public # Публикация функции
ycnf check # Информация о функции
ycnf delete # Удаление функцииНастройка
Переменные окружения
Создайте файл .env в корне вашего проекта:
YC_FOLDER_ID=your_folder_id_hereОпционально: Если у вас несколько профилей YC CLI, добавьте:
YC_PROFILE=your_profile_nameНастройка
Yandex Cloud CLI
Убедитесь, что у вас установлен и настроен Yandex Cloud CLI:
# Установка YC CLI
curl -sSL https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash
# Инициализация
yc initКонфигурация функции
Настройки функции хранятся в файле .functionconfig.json (создается в каждом проекте):
{
"name": "api-handler",
"runtime": "nodejs22",
"memory": 256,
"timeout": 60,
"public": true,
"logging": true,
"description": "REST API handler with routing",
"entrypoint": "index.handler",
"environment": {},
"tags": [],
"serviceAccountId": null,
"networkId": null
}Параметры конфигурации:
name- Имя функции (обязательно)runtime- Runtime для выполнения (например, "nodejs22")memory- Объем памяти в MBtimeout- Таймаут выполнения в секундахpublic- Публичный доступ к функции (true/false)logging- Включить логирование (true/false)description- Описание функцииentrypoint- Точка входа (например, "index.handler")environment- Переменные окружения (объект key-value или null). Если null, существующие переменные в YC сохраняютсяtags- Теги для версии функции (массив строк)serviceAccountId- ID сервисного аккаунта (строка или null)networkId- ID сети (строка или null)
Важно:
- Поле
nameобязательно и должно содержать имя функции в Yandex Cloud logging:true- включить логирование в папку по умолчанию,false- отключить логирование, не указано - использовать поведение по умолчаниюenvironment: еслиnullили не указано, существующие переменные окружения в Yandex Cloud сохраняются. Если указан объект, он заменит все переменные окружения
Использование
Установка в проект
- Установите CLI утилиту глобально:
npm install -g ycnf- В вашем проекте создайте необходимые файлы:
# Создайте .env файл
echo "YC_FOLDER_ID=your_folder_id_here" > .env
# Создайте .functionconfig.json
cp /path/to/ycnf/functionconfig.example.json .functionconfig.json- Отредактируйте
.functionconfig.jsonпод ваши нужды (имя функции, runtime, память и т.д.)
Создание нового проекта
Для быстрого создания нового проекта Yandex Cloud Function используйте команду create:
npx ycnf create --name my-functionИли без указания имени (будет запрошено в диалоге):
npx ycnf createЭта команда создаст:
- Структуру проекта с папкой
src/ - Файл
src/index.jsс базовым обработчиком - Конфигурацию
.functionconfig.jsonс полными параметрами - GitHub Actions workflow для автоматического деплоя
- Файлы
.gitignore,package.json,README.md
Публикация функции
npx ycnf publicОпции:
-f, --force- Принудительное создание новой версии (в настоящее время работает как обычная публикация)
Удаление функции
npx ycnf deleteОпции:
-f, --force- Удаление без подтверждения
Получение информации о функции
npx ycnf checkСтруктура проекта
.
├── cli.js # Основной CLI файл
├── package.json # Зависимости и конфигурация
├── .functionconfig.json # Конфигурация функции (создать в каждом проекте)
├── .env # Переменные окружения (создать в каждом проекте)
├── env.example # Пример переменных окружения
├── functionconfig.example.json # Пример конфигурации функции
├── src/ # Исходный код функции
│ └── index.js
└── README.mdТребования
- Node.js >= 14.0.0
- Yandex Cloud CLI
- Настроенный аккаунт Yandex Cloud
- ID папки в Yandex Cloud (YC_FOLDER_ID)
Разработка
Установка для разработки
git clone https://github.com/ivnvMkhl/ycnf.git
cd ycnf
npm install
npm linkТестирование
npm testПубликация
Автоматическая публикация (рекомендуется)
Пакет автоматически публикуется в npm при создании релиза на GitHub:
Создайте тег:
git tag v1.0.1 git push origin v1.0.1Создайте релиз на GitHub или используйте GitHub CLI:
gh release create v1.0.1 --title "Release v1.0.1" --notes "Bug fixes"GitHub Action автоматически опубликует пакет в npm
Ручная публикация
npm version patch # или minor, major
npm publishПримечание: Для автоматической публикации необходимо настроить NPM_TOKEN в секретах GitHub репозитория. См. GITHUB_ACTIONS_SETUP.md для подробностей.
Автор
iMkhl - [email protected]
Лицензия
MIT License. См. LICENSE для подробностей.
