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