Интересно узнать, как люди развернули потоки Префекта без сервера, так что потоки планируются / запускаются для пакетной обработки, в то время как агент автоматически сокращается, когда не используется.
Префект имеет сообщение в блоге о развертывании без сервера с AWS Lambda, которое является хорошим планом для того же с GCP. Проблема здесь заключается в масштабировании агентов - агенты работают, опрашивая бэкэнд (будь то самостоятельное развертывание Prefect Server или размещенное Prefect Cloud ) на регулярной основе (каждые ~ 10 секунд) , Одна возможность, которая приходит на ум, - это использовать облачную функцию для ускорения работы агента в процессе, вызванного любым событием пакетной обработки / планирования, о котором вы думаете. Вы также можете использовать аргумент -max-polls
CLI или kwarg, чтобы ускорить поиск агента; он сломается, если ничего не найдет после скольких указанных вами попыток опроса. Подробности об этом здесь или о любой из указанных c страниц агента.
Однако это может быть неэффективно для долгосрочных потоков, и вы можете столкнуться с ограничениями ресурсов; возможно, стоит посмотреть на автоматическое развертывание кластера Dask , если рабочие нагрузки достаточно высоки. Префект поддерживает это непосредственно с Kubernetes и имеет агента Kubernetes для взаимодействия с вашим кластером. Я думаю, что это было бы наиболее элегантным и масштабируемым решением без необходимости использовать go маршрутный класс c Compute Engine, который, я согласен, несколько устарел и не обеспечивает отличного автоматического масштабирования или первоклассного управления.
Лучшая поддержка безсерверного исполнения включена в план действий, в частности, в работе находится безсерверный агент, но у меня нет ETA, когда он будет выпущен.
Надеюсь, это поможет! :)