Всегда запускать скрипт Python в Google Cloud

Я хочу разместить скрипт на питоне в Google Cloud, который будет работать бесконечно.

Какие продукты Google Cloud можно использовать для достижения этого надежно и экономично?

это возможно на AppEngine?

Можете ли вы уточнить, что логически будет делать скрипт Python? Например, приложение Python, которое прослушивает входящие запросы браузера и обслуживает их... логически можно было бы считать «работающим бесконечно», но это привело бы к совершенно другому ответу, чем «вычисление бесконечного числа цифр PI». В нынешнем виде вопрос слишком широк, и его необходимо сузить, прежде чем отвечать.

Kolban 28.04.2019 16:30

@Kolban Он прослушивает данные с устройства IoT.

Akshar Patel 28.04.2019 16:45

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

Kolban 28.04.2019 17:51

Это клиент MQTT, который постоянно прослушивает сообщения с устройства.

Akshar Patel 28.04.2019 18:00
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
4
1 010
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В 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 ---> Облачная функция

Эта история в основном изменила парадигму с «Как я могу активно прослушивать запросы в моем коде неопределенным образом» на «Как я могу выполнить свой код, когда приходит запрос».

Потрясающее объяснение. Спасибо за ваше время. :)

Akshar Patel 28.04.2019 19:01

Это возможно на appengine, попробуйте перейти на бэкенд типа экземпляра в app.yaml
Вы можете узнать больше о внутренних и внешних экземплярах здесь.

Другие вопросы по теме