Автоматизация serverless-деплоя TypeScript на Yandex Cloud Functions с cron: DIY-гайд
-

Задолбался каждый раз вручную деплоить TypeScript-скрипты на Yandex Cloud Functions? Этот гайд покажет, как настроить полную автоматизацию для пет-проектов. С cron-триггерами функции будут запускаться по расписанию сами, без лишних телодвижений. Получишь готовый пайплайн: от кода до деплоя одной командой.
Yandex Cloud Functions - идеальный сервак для задач вроде парсинга данных или ИИ-апишек по расписанию. Экономит бабки на VM, масштабируется мгновенно. Подходит для ботов, мониторинга или ежедневных репоров - никаких серверов не трогай.
Подготовка проекта: TypeScript + конфиг для деплоя
Сначала соберем TypeScript-проект, который компилится в JS для Cloud Functions. Node.js не жрет TS нативно, так что компилируем вручную или через скрипты. Это базовый шаг, без него деплой не взлетит. Представь пет-проект: скрипт парсит Reddit-новости и шлет в Telegram раз в час - типичный кейс.
Установи Node.js, создай папку проекта и настрой tsconfig.json. Добавь зависимости для деплоя через готовый CLI - он проще serverless framework. Никаких yc cli не нужно, все через API. Логично перейти к списку шагов: от init до первой сборки.
- Создай проект:
mkdir ts-fn && cd ts-fn && npm init -y. - Установи TS:
npm i typescript @types/node --save-dev. - Сгенерируй tsconfig:
npx tsc --init --target ES2021 --moduleResolution Node --outDir build. - Добавь deploy-CLI:
npm i yandex-cloud-deploy-fn -Dили используй npx.
tsconfig.json пример:
{ "compilerOptions": { "target": "ES2021", "module": "commonjs", "outDir": "./build", "strict": true } }Нюанс: Для больших архивов (>3.5Mb) включи Object Storage в конфиге - код грузит через бакет, быстрее API.
Настройка cron-триггера: расписание без гемора
Cron в Yandex Cloud Functions - это триггер, который будит функцию по расписанию в формате cron-выражения. Поля: минуты, часы, день месяца, месяц, день недели. Специальные символы вроде
*(все значения),?(любое) или/(шаг) упрощают жизнь. Пример:0 10 * * ? *- каждый день в 10:00.Для пет-проекта подойдет запуск раз в день для бэкапа данных или проверки метрик. Триггер создается в консоли или через CLI после деплоя функции. Нет нужды в отдельных серваках - все serverless. Переходим к таблице примеров и списку фич.
Поле Диапазон Специальные символы Пример Minutes 0-59 *, /, - 0/15 (каждые 15 мин) Hours 0-23 *, / 10 (в 10 утра) Day of month 1-31 *, ?, L 10 (10-е число) Month 1-12 *, JAN-DEC * (каждый месяц) Day of week 1-7 *, ?, # ? (любой день) 0 * * * * ?- каждую минуту (для тестов).0 0 * ? * *- каждый час.0 15 10 ? * *- в 10:15 ежедневно.
Важно: Время по UTC+0, для Москвы добавь +3 часа в выражение. Проверь timezone в консоли Yandex.
Деплой одной командой: CLI-магия без serverless
Забудь про громоздкий serverless framework - используй yandex-cloud-deploy-fn. Это легкий CLI: пакует TS в zip, компилит, шлет в Cloud Functions. Поддержка env-переменных, тегов и больших файлов через S3-совместимый storage. Команда
npx deploy-fn- и версия готова за 25 сек.Пример конфига deploy-fn.config.js: укажи имя функции, runtime node18, env. Для тегов - интерактивный режим
npx deploy-fn-tag. Идеально для CI/CD в пет-проектах. Список шагов и таблица отличий от аналогов.module.exports = { functions: { my-fn: { runtime: 'nodejs18', entrypoint: 'build/index.handler', environment: { NODE_ENV: 'production' } } } };Фича deploy-fn serverless + plugin yc cli Не нужен Обязателен Большие архивы Через Object Storage Ограничено Логи Чистые Мусор про unknown fn Теги Интерактив Нет - Запусти
npx deploy-fn- увидишь версию и размер. - Для тегов:
npx deploy-fn-tag- выбери вручную. - Автоматизируй в package.json:
"deploy": "tsc && npx deploy-fn".
Совет: Тестируй локально через
func-localиз Yandex SDK.Пример пет-проекта: парсер с cron и ИИ
Возьми реальный кейс - скрипт на TS, который раз в день парсит новости с Reddit, анализирует через YandexGPT API и шлет отчет в чат. Функция: fetch RSS, промпт в ИИ, пост в Telegram. Деплой автоматизирован, cron будит - и пет-проект живет сам.
Handler в index.ts: асинхронная функция с env-ключам. Компилируем, деплоим, настраиваем триггер
0 9 * * ? *(утром). Масштаб: от 1 вызова до тысяч - платишь копейки. Логично разобрать код и шаги запуска.import { Context } from 'yandex-cloud-functions'; export async function handler(event: any, context: Context) { // Парсинг, ИИ-промпт, отправка console.log('Cron job started'); }- Настрой IAM: сервисный аккаунт с правами на Functions и Storage.
- Деплой:
npm run build && npx deploy-fn. - Триггер: в консоли укажи cron и привяжи к функции.
- Мониторинг: логи в консоли Yandex, метрики вызовов.
Промпт для ИИ-примера: “Проанализируй топ-5 новостей по ИИ с Reddit: ключевые тренды, риски, возможности для dev-ов”.
Что взлетит в твоем следующему релизе
Автоматизация деплоя TS на Yandex Cloud Functions с cron превращает пет-проект в живой продукт за час. Осталось докрутить CI/CD через GitHub Actions или добавить message queues для сложных цепочек. Подумай над мультирегиональным репликацией - для отказоустойчивости без доплат.
- Создай проект:
Здравствуйте! Похоже, вас заинтересовала эта беседа, но у вас ещё нет аккаунта.
Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост мог бы стать ещё лучше 💗
Зарегистрироваться Войти© 2024 - 2026 ExLends, Inc. Все права защищены.