Автоматизируем деплой TS Node.js функций на Yandex Cloud с cron: DIY-гайд 2026
-

Задолбался каждый раз вручную компилить TypeScript и деплоить на Yandex Cloud Functions? Этот гайд покажет, как настроить полный пайплайн: от компиляции TS в JS до автодеплоя и cron-триггеров. Экономишь часы на релизе, функция работает по расписанию без сервака.
Node.js на Yandex Cloud - топ для serverless, особенно с TypeScript. Плюс cron решает задачи типа ежедневного парсинга или бэкапов. Всё делается DIY, без лишних сервисов, на чистом yc CLI и GitHub Actions.
Настраиваем проект TypeScript для Cloud Functions
TypeScript не едет на Yandex Cloud как есть - Node.js runtime жрёт только JS. Сначала компилим TS в build-директорию, пакуем в ZIP и шлём. Это базовый шаг, без него ничего не взлетит. Представь: пишешь типизированный код, npx tsc - и готов архив для деплоя.
Реальный пример: функция, которая парсит API и логирует в Cloud Logging. Конфиг tsconfig.json под Node.js 22 - target ES2021, outDir build. После компиляции index.ts становится index.js в build. Yandex сам ставит deps из package.json при деплое.
Вот ключевые шаги настройки:
- Установи TS:
npm i typescript --save-dev. - Создай tsconfig:
npx tsc --init --target ES2021 --moduleResolution Node --outDir build --strict. - Напиши handler:
export const handler = async (event) => { ... }. - Компиль:
npx tsc- build готов для ZIP.
Параметр tsconfig Значение Зачем target ES2021 Совместимо с nodejs22 outDir build Отдельная папка для JS moduleResolution Node Для npm-модулей Нюанс: Если deps типа @yandex-cloud/nodejs-sdk - добавь в package.json, компиляция их не трогает.
Деплой через yc CLI с автоматизацией компиляции
Ручной деплой - это
yc serverless function version create --source-path=build. Но для автоматизации скриптуем: компиль + ZIP + yc deploy. GitHub Actions или локальный скрипт на Node.js - выбирай по вкусу. После пуша в main триггерится полный цикл.Пример скрипта deploy.sh:
#!/bin/bash npm run build # tsc zip -r function.zip build/ yc serverless function version create --function-name my-ts-func --source-path=./function.zipЭто деплоит версию функции. Указывай runtime
nodejs22, entrypointbuild/index.handler. Логи в консоли Yandex - всё видно сразу.Шаги для полного деплоя:
- Инициализируй yc CLI:
yc init. - Создай функцию:
yc serverless function create --name my-ts-func --runtime nodejs22. - Скриптуй build & deploy (см. выше).
- Тести:
yc serverless function invoke --name my-ts-func.
Ручной деплой vs Авто Время Масштаб yc CLI вручную 5 мин Пет-проект GitHub Actions 1 мин Команда Важно: IAM-токен для CI - сервисный аккаунт с правами editor.
Интегрируем cron-триггеры для scheduled tasks
Cron в Cloud Functions - это триггер по расписанию, типа
0 0 * * *для ежедневного запуска. Нет нужды в серваке или Kubernetes. Функция будится, отрабатывает задачу - спит. Идеально для бэкапов, парсинга Reddit или ИИ-скриптов.Пример: Функция шлёт метрику в Yandex Monitoring по cron. Создай триггер:
yc serverless trigger create schedule --name cron-trigger --cron-expression="0 9 * * 1-5" --function my-ts-func. Теперь по будням в 9 утра флайт.Настройка cron:
- Создай триггер:
yc serverless trigger create schedule .... - Свяжи с функцией: указывай function-id.
- Тести: invoke вручную, чек логов.
- Масштаб: до 1000 вызовов/сек, бесплатно первые 1M.
Cron выражение Задача Частота 0 0 * * * Бэкап Ежедневно 0 */5 * * * * Парсер Каждые 5 мин 0 12 * * 1 Отчёт По понедельникам Подводный камень: Таймаут функции - до 10 мин, для долгих задач цепочка вызовов.
Готовый пайплайн CI/CD на GitHub Actions
Полный автодеплой: push в repo -> build TS -> deploy на Yandex -> cron активен. Используй actions/setup-node и yc CLI в workflow. Репо с .github/workflows/deploy.yml - и фича готова. Это DIY без SourceCraft, чисто на GitHub.
workflow.yml:
name: Deploy TS Function on: [push] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: { node-version: 22 } - run: npm ci - run: npm run build - uses: actions/upload-artifact@v4 with: { name: func, path: build } - name: Deploy run: | # yc CLI скриптДеплой триггерится на push, компилит, шлёт ZIP. Добавь SDK для работы с Yandex API внутри функции.
Пайплайн шаги:
- Checkout + npm install.
- Build TS.
- ZIP + yc create version.
- Notify в Telegram (опционально).
Инструмент Плюсы Минусы GitHub Actions Бесплатно, легко Лимит минут SourceCraft Нативно Yandex Меньше флекс Совет: Secrets для токенов - YC_OAUTH_TOKEN.
Масштаб и хитрости для продакшена
Всё настроено - теперь подумай о мониторинге и версиях. Yandex Logging ловит stdout, Metrics считает вызовы. Для продакшена - A/B версий функций, роллбэки. Cron + TS/Node.js - база для пет-проекта или бизнеса.
Остаётся за кадром: интеграция с Yandex AI Studio для ИИ-тасков в cron или Kubernetes для stateful. Подумай о тестовом фреймворке - Jest с ts-jest перед деплоем. В 2026 такие пайплайны - стандарт, держи runtime nodejs22 свежим.
- Установи TS:
Здравствуйте! Похоже, вас заинтересовала эта беседа, но у вас ещё нет аккаунта.
Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост мог бы стать ещё лучше 💗
Зарегистрироваться Войти© 2024 - 2026 ExLends, Inc. Все права защищены.