我正在接触 GCP 和 GAE,还有 Nodejs、Python 和网络(我知道)。
[+] 我拥有的:
基本上我有一些nodejs代码,它接受一些输入,然后应该将该输入发送到一些python代码,这些代码将对其执行更多操作。我的第一个想法是通过GAE部署nodejs代码,然后将python代码托管在python服务器中,然后从nodejs前端向python服务器后端发出post请求。
[+] 我希望能够做什么:
只需将我的nodejs代码和python代码部署在同一个项目和GAE实例中,这样nodejs就是人们看到的前端,但python服务器也运行在相同的环境中,并且可以与Nodejs 无需在线发送任何内容。
[+] 我读过的内容
https://www.netguru.co/blog/use-node-js-backend
Google App Engine - Front and Backend Web Development
以及无数其他谷歌搜索此类设置但无济于事。 如果有人能指出我正确的方向,我将非常感激。
最佳答案
您不能在同一个实例中同时运行 python 和 nodejs,但它们可以作为单独的服务运行,每个服务在同一个 GAE 应用程序/项目中都有自己的实例。请参阅Service isolation也许Deploying different languages services to the same Application [Google App Engine]
使用发布请求可以很好地工作,但可能需要一些努力才能确保没有外部访问。
由于您打算使用 Nodejs 服务作为前端,因此您只能使用 flexible environment对于它,这限制了服务间通信选项 - 您不能使用 push queues (仅在 standard environment 中得到正确支持)恕我直言,这将是比 post 请求更好/更安全的解决方案。
另一个安全通信选项是 Nodejs 服务将数据放入数据存储中,并让 Python 服务从那里获取数据 - 数据存储由同一 GAE 应用程序内的所有实例/版本/服务共享。而且更松散耦合的恕我直言 - 每个服务都可以在另一个服务不活动的情况下运行(至少一段时间)(如果使用 post 请求则不可能)。
更新:
Node.JS 目前也在标准环境中可用,因此您可以使用这些功能,请参阅:
关于python - 使用 Nodejs 中的前端和 Python 中的后端服务器运行 Google App Engine 的一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50280880/