Запуск одного экземпляра Google App Engine с внешним интерфейсом в nodejs и внутренним сервером в python - PullRequest
0 голосов
/ 10 мая 2018

Я промокаю ногами от GCP и GAE, также от nodejs, python и сетей (я знаю).

[+] Что у меня есть :

По сути, у меня есть некоторый код nodejs, который принимает некоторые входные данные и, как предполагается, затем отправляет эти входные данные в некоторый код Python, который будет делать с ним больше вещей.Моя первая идея состояла в том, чтобы развернуть код nodejs через GAE, затем разместить код python на сервере python, а затем отправлять запросы от внешнего интерфейса nodejs на серверную часть python.

[+] Что я хотел бы сделать:

, просто разверните мой код nodejs и мой код python в одном проекте и экземпляре GAE, чтобычто nodejs - это интерфейс, который видят люди, но сервер python также работает в той же среде и может просто взаимодействовать с nodejs, не отправляя ничего в сети.

[+] То, что я прочитал

https://www.netguru.co/blog/use-node-js-backend

Google App Engine - Веб-разработка на передней и задней частях

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

1 Ответ

0 голосов
/ 11 мая 2018

Нельзя одновременно запускать python и nodejs в одном экземпляре, но они могут работать как отдельные сервисы, каждый со своими собственными экземплярами в одном и том же приложении / проекте GAE. См. Изоляция службы и, возможно, Развертывание служб на разных языках в одном приложении [Google App Engine]

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

Поскольку вы намереваетесь использовать в качестве внешнего интерфейса службу nodejs, для вас ограничено использование только гибкой среды , которая ограничивает возможности межсервисной связи - вы не можете использовать push очереди (должным образом поддерживаются только в стандартной среде ), что, по моему мнению, будет лучшим / более безопасным решением, чем почтовые запросы.

Другим вариантом защищенной связи было бы для службы nodejs поместить данные в хранилище данных и заставить службу python забрать их оттуда - хранилище данных является общим для всех экземпляров / версий / служб в том же приложении GAE. Также более слабосвязанное IMHO - каждый сервис может функционировать (хотя бы какое-то время), а другой не будет активным (это невозможно при использовании почтовых запросов).

Может быть интересен: Как определить, относится ли страница документации Google App Engine к стандартной или гибкой среде

UPDATE:

Node.JS в настоящее время также доступен в стандартной среде, поэтому вы можете использовать эти функции, см .:

...