Поиск по сайту:

Как периодически запускать облачные функции GCP с помощью Cloud Scheduler


Если вы хотите регулярно запускать код, например задание cron, вы можете использовать облачный планировщик Google Cloud Platform для автоматического запуска бессерверных облачных функций через фиксированные промежутки времени без использования каких-либо реальных серверов.

Что такое облачный планировщик?

Cloud Scheduler рекламирует себя как «Управляемый Cron как услуга». Это позволяет планировать задачи, используя синтаксис cron. Однако он заменяет только компонент планирования cron — Cloud Scheduler не является вычислительной службой и может отправлять только HTTP-запросы или сообщения pub/sub, поэтому сам по себе он довольно ограничен в своих возможностях.

Одним из наиболее полезных применений планировщика является запуск облачных функций через равные промежутки времени. Облачные функции запускают код без серверов, используя различные среды выполнения, такие как JavaScript с Node, Python или Java. Вы можете настроить облачные функции для запуска из уведомлений Pub/Sub, которые может отправлять Cloud Scheduler, так что вы получите систему, в которой вы можете регулярно запускать бессерверный код, используя синтаксис cron.

Если код, который вам нужно запустить, должен выполняться на определенном сервере, лучшим вариантом по-прежнему будет просто использовать локальный cron для запуска любых необходимых вам сценариев. Однако, если вы можете написать сценарий с помощью JavaScript/Python и не заботитесь о среде выполнения функции, облачные функции справятся с этим хорошо, не требуя от вас настройки сервера.

Настройка запланированной функции

Перейдите к консоли Cloud Functions, чтобы настроить функцию. Вам не нужно создавать новую функцию, так как вы можете просто отредактировать существующую, чтобы запускать сообщения Pub/Sub.

Дайте ему имя, выберите, сколько оперативной памяти ему выделить, и переключите его на «Cloud Pub/Sub» в качестве триггера.

Вам нужно будет выбрать или создать тему Pub/Sub для подписки на функцию.

Дайте ему имя и нажмите «Создать тему».

Как только это будет сделано, вы можете загрузить свой код, либо вставив его в строку, либо загрузив почтовый индекс, либо связав репозиторий Cloud Source.

Перейдите в консоль Cloud Scheduler, чтобы создать задание cron.

Дайте ему имя и установите частоту, используя синтаксис cron. Вы можете прочитать наше руководство по cron или использовать этот онлайн-инструмент, который поможет вам с планированием. Общий синтаксис:

minute hour day month weekday

Установите цель Pub/Sub и введите имя темы, которое вы создали для функции.

Теперь функция должна запускаться автоматически, но вы можете нажать «Выполнить сейчас» в Cloud Scheduler, чтобы протестировать ее. На этой панели также можно просмотреть журналы предыдущих выполнений.

Если функция не выполняется должным образом, проверьте журналы облачной функции, чтобы убедиться, что она вообще отвечает на запросы. Если он получает запросы, это, вероятно, ошибка в вашем коде, а если нет, то, скорее всего, ошибка или опечатка в теме Pub/Sub.