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

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

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

    Обложка: Как автоматизировать серверлесс-деплой 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 для сложных цепочек. Подумай над мультирегиональным репликацией - для отказоустойчивости без доплат.

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

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

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

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

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

    Категории

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

    Контакты

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

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

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

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

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