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

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

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

    Обложка: Как автоматизировать деплой TypeScript-функций 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, entrypoint build/index.handler. Логи в консоли Yandex - всё видно сразу.

    Шаги для полного деплоя:

    1. Инициализируй yc CLI: yc init.
    2. Создай функцию: yc serverless function create --name my-ts-func --runtime nodejs22.
    3. Скриптуй build & deploy (см. выше).
    4. Тести: 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 свежим.

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

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

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

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

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

    Категории

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

    Контакты

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

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

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

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

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