Я хочу разместить скрипт на питоне в Google Cloud, который будет работать бесконечно.
Какие продукты Google Cloud можно использовать для достижения этого надежно и экономично?
это возможно на AppEngine?
@Kolban Он прослушивает данные с устройства IoT.
Спасибо... но КАК он прослушивает данные? Это входящий запрос REST? Это публикация MQTT? Это публикация GCP Pub/Sub? Пожалуйста, найдите время, чтобы ответить как можно более полно и подробно.
Это клиент MQTT, который постоянно прослушивает сообщения с устройства.






В GCP есть несколько способов запуска логики обработки. У нас есть App Engine, Functions, Compute Engine, GKE, Cloud Run и многое другое. Из них Compute Engine и GKE обеспечивают самый низкий уровень контроля, а это означает, что вы можете управлять кодом так, чтобы он выполнялся 100% времени... и в основном делал все, что вы хотите. Судя по вашей истории, кажется, что Compute Engine — это то, что вам нужно. Когда вы создаете Compute Engine, вам в основном предоставляется виртуальная машина (обычно Linux), и вы просто запускаете любую логику / приложения, которые хотите, в этой среде. Google взимает плату за время работы Compute Engine. Если у вас есть постоянно работающее явное приложение Python, вам будет выставляться счет 24x7 независимо от того, действительно ли поступает трафик.
Другими возможностями, которые вы, вероятно, захотите рассмотреть, являются облачные функции. Облачная функция — это логика, которая запускает Только при наличии активного запроса, который необходимо обработать. GCP обязан пассивно прослушивать новые запросы, не взимая с вас плату за эту услугу. Когда поступает запрос, ваша логика выполняется, и вам выставляется счет только за то время, в течение которого ваша логика ДЕЙСТВИТЕЛЬНО выполняется. Cloud Run похож на Cloud Functions, но логика размещается в среде Kubernetes, а не в нативной.
Для облачной функции входящие запросы могут поступать либо через запросы REST, либо через GCP Pub/Sub. В вашем описании ни один из них не применим, поскольку вы получаете данные через MQTT. Именно здесь в игру вступает Google IOT Core. Ядро Google IoT — это полнофункциональная среда для управления устройствами IoT. Главным в этой истории является возможность пассивного прослушивания входящих запросов MQTT. Когда авторизованное устройство IoT отправляет запрос MQTT, ядро Google IoT автоматически пересылает содержимое запроса MQTT через GCP Pub/Sub. Затем это отделяет механику поступающего сообщения IoT от того, как оно будет в конечном итоге обработано. Поскольку сообщение MQTT теперь опубликовано в GCP Pub/Sub, его можно использовать в качестве триггера для облачной функции Google.
После всех этих частей... одной из возможностей изучения, которая может привести к самому дешевому и более динамично масштабируемому решению, будет:
Устройство IoT --- MQTT ---> IoT Core --- Pub/Sub ---> Облачная функция
Эта история в основном изменила парадигму с «Как я могу активно прослушивать запросы в моем коде неопределенным образом» на «Как я могу выполнить свой код, когда приходит запрос».
Потрясающее объяснение. Спасибо за ваше время. :)
Это возможно на appengine, попробуйте перейти на бэкенд типа экземпляра в app.yaml
Вы можете узнать больше о внутренних и внешних экземплярах здесь.
Можете ли вы уточнить, что логически будет делать скрипт Python? Например, приложение Python, которое прослушивает входящие запросы браузера и обслуживает их... логически можно было бы считать «работающим бесконечно», но это привело бы к совершенно другому ответу, чем «вычисление бесконечного числа цифр PI». В нынешнем виде вопрос слишком широк, и его необходимо сузить, прежде чем отвечать.