Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Языки программирования
  4. TypeScript
  5. Автоматизация деплоя TypeScript-скриптов на serverless с Node.js и cron: DIY-гайд

Автоматизация деплоя TypeScript-скриптов на serverless с Node.js и cron: DIY-гайд

Запланировано Прикреплена Закрыта Перенесена TypeScript
typescriptserverlesscron
1 Сообщения 1 Постеры 60 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • kirilljsxK Не в сети
    kirilljsxK Не в сети
    kirilljsx
    js
    написал в отредактировано
    #1

    Обложка: Как автоматизировать деплой TypeScript-скриптов на serverless с Node.js и cron: DIY-гайд для пет-проектов

    Ребят, пет-проекты на TypeScript и Node.js - это огонь, но каждый раз деплоить руками - полный отстой. В этом гайде разберем, как задеплоить скрипты на serverless с cron-триггерами, чтобы они работали сами по себе. Экономит кучу времени, особенно для парсеров или ботов с ИИ.

    Представь: скрипт парсит Reddit, кидает данные в базу, а cron запускает его по расписанию. Никаких серваков, платишь копейки, масштабируется на раз. Идеально для DIY, без лишней бюрократии от больших облаков.

    Готовим проект на TypeScript для serverless

    Скрипты на TypeScript в serverless - стандарт, потому что типизация спасает от багов в проде. Node.js не жрет TypeScript нативно, так что компилим в JS перед деплоем. Берем Yandex Cloud Functions или AWS Lambda - там все готово для этого.

    Пример: пишем парсер новостей, который раз в час шарит по API Reddit и сохраняет в Object Storage. Без компиляции код не полетит. Настраиваем tsconfig.json с target ES2021 для Node 16+, strict false для простоты в пет-проектах. Потом npx tsc - и build готов к архиву.

    Вот базовая настройка:

    • Установи typescript: npm install typescript --save-dev.
    • Создай конфиг: npx tsc --init --target ES2021 --outDir build --moduleResolution node.
    • Компилируй: npx tsc - получишь /build с JS.

    Нюанс: для AWS подкрути target под runtime nodejs18.x, чтоб не было сюрпризов с синтаксисом.

    Параметр tsconfig Значение для serverless Почему?
    target ES2021 Совместимо с Node 16+
    outDir ./build Отдельная папка для деплоя
    strict false Быстрее для пет-проектов

    Настраиваем serverless-фреймворк и handler

    Serverless Framework - король автоматизации, один serverless.yml и деплой на раз. Устанавливаем глобально, генерим проект и правим конфиг под Node.js. Handler - это экспорт функции, которую Lambda вызовет.

    Типичный случай: бот на Node.js, который по cron шлет уведомления из ИИ-API. В serverless.yml указываем provider aws или yandex, runtime nodejs18.x, events с cron. Плюс esbuild для бандлинга TypeScript без лишних зависимостей.

    Код handler’а простой:

    import { APIGatewayProxyHandler } from 'aws-lambda';
    
    export const handler: APIGatewayProxyHandler = async (event) => {
      // Твой скрипт здесь, например парсинг
      return { statusCode: 200, body: JSON.stringify({ message: 'Done!' }) };
    };
    
    • Добавь плагины: serverless-esbuild для TS, serverless-offline для локального теста.
    • В functions опиши: handler: dist/handler.handler, events: - schedule: rate(1 hour).
    • Установи deps: npm i serverless -g, npm i -D serverless-esbuild.

    Важно: для cron в AWS rate(1 hour), в Yandex - cron(0 * * * ?).## Деплой с CI/CD и cron-триггерами

    Деплой руками - прошлый век, накидываем GitHub Actions или Sourcecraft для автопуша. После коммита скрипт компилится, пакуется в ZIP и летит в облако. Cron настраивается в events - и скрипт тикает сам.

    Пример для пет-проекта: ежедневный парсер трендов ИИ с Reddit, деплоится из GitHub. Workflow проверяет код, билдит TS, деploит serverless deploy. В консоли AWS или Yandex видишь логи и метрики.

    Шаги CI/CD:

    1. Создай .github/workflows/deploy.yml с npm ci, npx tsc, serverless deploy.
    2. Добавь secrets: AWS_KEY, YC_TOKEN.
    3. Триггер на push в main.
    Провайдер Cron-синтаксис CI-инструмент
    AWS Lambda rate(1 day) GitHub Actions
    Yandex CF cron(0 0 * * ?) Sourcecraft

    Плюс middy для middleware: валидация, логи, CORS - скрипт становится API-ready.

    Масштабируем и мониторим пет-проект

    Serverless с cron - это не только деплой, но и масштабирование: от 1 вызова до тысяч без доработок. Добавляем DynamoDB для хранения, API Gateway для эндпоинтов. Мониторинг через CloudWatch или Yandex Monitoring.

    Реальный кейс: скрипт интегрирует Grok API, парсит данные, пушит в Telegram-бот. Cron раз в 15 мин, логи в реал-тайм. Если трафик растет - платишь пропорционально, никаких idle-серваков.

    Опции мониторинга:

    • CloudWatch Logs: фильтры по ошибкам, метрики вызовов.
    • X-Ray: трейсинг для дебаггинга cron-джобов.
    • Локальный тест: serverless offline start.

    Фишка: esbuild бандлит все в один файл - деплой молниеносный, холодные старты минимальные.## Лайфхаки, которых не ждешь в гайдах

    Задолбался копаться в ошибках? Вот свежие трюки на 2026. Serverless-esbuild с external deps экономит размер бандла. Для cron-джобов добавь idempotency - чтоб дубли не плодились.

    Поделись в коммах свои сеты: кто на Vercel мигрировал? Или Python-альтернативы? Остается за кадром глубокий кастом IAM для продакшена и интеграция с Kubernetes - если пет вырастет в бизнес. А пока тестируй локально, деплои и наслаждайся автоматизацией.

    1 ответ Последний ответ
    0

    Здравствуйте! Похоже, вас заинтересовала эта беседа, но у вас ещё нет аккаунта.

    Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.

    С вашими комментариями этот пост мог бы стать ещё лучше 💗

    Зарегистрироваться Войти

    Категории

    • Главная
    • Новости
    • Фронтенд
    • Бекенд
    • Языки программирования

    Контакты

    • Сотрудничество
    • info@exlends.com

    © 2024 - 2026 ExLends, Inc. Все права защищены.

    Политика конфиденциальности
    • Войти

    • Нет учётной записи? Зарегистрироваться

    • Войдите или зарегистрируйтесь для поиска.
    • Первое сообщение
      Последнее сообщение
    0
    • Лента
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы