Как запланировать повторяющийся скрипт Python с помощью Google Cloud Scheduler и Cloud Function

На вашем сервере не настроен Airflow? У вас нет опыта настройки задания cron для планирования вашего скрипта? Не стоит беспокоиться. Сегодня мы собираемся узнать, как запланировать ваш скрипт Python в Google Cloud Platform с минимальными знаниями работы cron.

Cloud Scheduler - это управляемый продукт Google Cloud Platform (GCP), который позволяет указать частоту для планирования повторяющихся заданий. Вкратце, это легкий планировщик управляемых задач.

Зачем нужен планировщик? Планировщик позволяет запускать рабочий процесс в любое время. Он повторяет попытку в случае сбоя и даже позволяет вам запустить что-то в 3 часа ночи, чтобы вам не приходилось просыпаться посреди ночи.

Начиная

Создать облачный планировщик

Начнем с создания облачного планировщика. Перейдите в Google Cloud Platform, чтобы найти Cloud Scheduler, или перейдите по этой ссылке напрямую.

Примечание. Чтобы использовать Cloud Scheduler, необходимо настроить свою учетную запись для выставления счетов. У вас будет 3 бесплатных вакансии в месяц на каждую учетную запись. Для получения более подробной информации вы можете обратиться к Цены на Cloud Scheduler.

Давайте начнем с «Запланировать работу».

В этом примере я собираюсь запланировать сценарий Python для отправки электронного письма, поэтому имя задания будет schedule-email.

Периодичность расписания указывается в формате unix-cron. Если вы не знакомы с unx-cron, вы можете обратиться к веб-сайту crontab guru. Я всегда обращаюсь на этот сайт, чтобы убедиться, что я установил правильный график.

Например, 30 8 * * * означает, что это задание будет выполняться ежедневно в 08:30.

0 9 6 * * означает, что это задание будет выполняться ежемесячно, каждое 6-е число в 09:00.

Затем нам нужно настроить цель задания. В этом примере мы будем использовать Pub / Sub в качестве целевого типа. Новая тема schedule-email создала новую тему для этой работы.

Расширенная настройка здесь не является обязательной. Но давайте на всякий случай установим повторные попытки. После этого нажмите кнопку «Создать», чтобы создать облачный планировщик.

Создать облачную функцию

Затем перейдем к Облачной функции, чтобы создать облачную функцию.

Давайте настроим нашу облачную функцию с именем и регионом. Тип триггера будет Pub / Sub, а темой будет только что созданная тема schedule-email.

Затем мы должны настроить сценарий с main.py и requirement.txt.

В этом примере мы собираемся отправить простое электронное письмо с помощью этого планировщика. Следовательно, для этого скрипта не требуется дополнительных пакетов / библиотек. Я собираюсь оставить requirement.txt без изменений.

Если вы хотите запланировать электронное письмо с вложением, обратитесь к другой моей статье.



Точкой входа будет функция, которую вы определили для запуска в сценарии, в данном примере это schedule_email.

У вас также есть возможность настроить выделенную память, тайм-аут и переменные среды выполнения. Не забудьте выделить больше времени и памяти, если вы выполняете длинный сценарий.

Ага! Электронная почта успешно запланирована на 22:00.

Теперь вы узнали, как запланировать сценарий Python с помощью Google Cloud Scheduler. Вы можете попробовать этот планировщик с другими задачами, такими как специальное пакетное задание, задание по обработке больших данных или инструменты автоматизации инфраструктуры. Приятно то, что Cloud Scheduler берет на себя всю тяжелую работу за вас!

Вы можете просмотреть main.py в моем Github Gist. Ваше здоровье!

Если вам понравилось читать эту статью, возможно, вам понравятся следующие материалы:





Вы можете найти ссылки на другие мои работы на Medium и подписаться на меня здесь. Спасибо за чтение!