Как запланировать задание потока данных, запустив задание cron Google Compute Engine

В часто задаваемых вопросах о потоках данных указано, что выполнение пользовательских (cron) процессов заданий on Compute Engine — это способ планирования конвейеров потоков данных. Я не понимаю, как именно это нужно сделать: как запустить задание потока данных на вычислительном движке и запустить задание cron.

Благодарю вас!


person mipu    schedule 19.08.2020    source источник


Ответы (2)


Вы можете использовать Google Cloud Scheduler для выполнения задания потока данных. В Cloud Scheduler у вас есть цели, это могут быть конечные точки HTTP/S, темы Pub/Sub, приложения App Engine, вы можете использовать свой шаблон потока данных в качестве цели. Просмотрите эту внешнюю статью, чтобы увидеть пример: Запланируйте свои пакетные задания потока данных с помощью Cloud Scheduler или, если вы хотите добавить больше сервисов к взаимодействию: Планирование конвейера потока данных с помощью Cloud Run, PubSub и Cloud Scheduler.

person David C    schedule 20.08.2020
comment
Привет, спасибо за ваш ответ. Я попытался следовать этому примеру, однако, несмотря на учетную запись службы, задание планировщика всегда не проходит аутентификацию (ОТКАЗАНО В РАЗРЕШЕНИИ) в конечной точке шаблона HTTP. У вас есть какие-нибудь идеи по этому поводу? - person mipu; 24.08.2020
comment
Трудно сказать причину без дополнительной информации, попробуйте поискать в журналах или вызовах API к конвейеру потока данных. - person David C; 25.08.2020

У меня это работает в App Engine, но я думаю, что это похоже на Compute Engine.

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

Это должно быть его основой. Дополнительный шаг, который я делаю, заключается в том, что у меня есть обработчик запросов для моего задания cron, запускающего облачную задачу, а затем у меня есть обработчик запросов для моей облачной задачи, запускающий задание потока данных. Я делаю это, потому что я заметил, что команда «запустить» для конвейеров иногда занимает некоторое время, а облачные задачи имеют 10-минутный тайм-аут по сравнению с 30-секундным тайм-аутом для заданий cron (или это было 60-секундным).

person Alex    schedule 19.08.2020