使用nodejs中的前端和python中的后端服务器运行Google App Engine的一个实例 - python

我对GCP和GAE,nodejs和python及网络(我知道)感到不知所措。

[+]我有:

基本上,我有一些nodejs代码,它们接受一些输入,然后应该将该输入发送到一些python代码,它将对它做更多的工作。我的第一个想法是通过GAE部署nodejs代码,然后将python代码托管在python服务器中,然后从nodejs前端向python服务器后端发出发布请求。

[+]我想做的是:

只需在同一项目和GAE实例中部署我的nodejs代码和我的python代码,以便nodejs是人们看到的前端,但是python服务器也可以在同一环境中运行,并且可以与nodejs进行通信而无需发送任何在线内容。

[+]我读过的

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

Google App Engine - Front and Backend Web Development

还有无数其他Google搜索此类设置,但无济于事。
如果有人能指出正确的方向,我将不胜感激。

参考方案

您不能在同一实例中同时运行python和nodejs,但它们可以作为单独的服务运行,每个服务在同一GAE应用程序/项目中具有各自的实例。请参见Service isolation,也许还有Deploying different languages services to the same Application [Google App Engine]

使用发帖请求可以很好地工作,但是可能会花费一些精力来确保没有外部访问。

由于您打算用作nodejs服务的前端,因此仅限于使用flexible environment,这限制了服务间通信选项-您不能使用push queues(仅在standard environment中受支持) )哪种IMHO比发布请求更好或更安全。

另一个安全的通信选项是让nodejs服务将数据放入数据存储中,并让python服务从那里获取数据-数据存储由同一GAE应用内的所有实例/版本/服务共享。同样,松散耦合的恕我直言-每个服务都可以运行(至少一会儿),而另一个服务不存活(如果使用发布请求,则不可能)。

可能感兴趣:How to tell if a Google App Engine documentation page applies to the standard or the flexible environment

更新:

Node.JS当前在标准环境中也可用,因此您可以使用这些功能,请参见:

Now, you can deploy your Node.js app to App Engine standard environment
Google App Engine Node.js Standard Environment Documentation

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

加载并保持变量/对象在python Flask服务器中的文件之间可访问 - python

当启动我的flask应用程序时,我希望它立即加载一个对象,并且希望该对象可用于其他文件中定义的功能。现在设置的方式如下:object = someObjectToLoadAtServerStartAndAlwaysKeepInMemoryAndAccessFromAnyPyFile 在run.py中,位于文件夹Project中:from app import…

Python:集群作业管理 - python

我在具有两个阶段的计算群集(Slurm)上运行python脚本,它们是顺序的。我编写了两个python脚本,一个用于阶段1,另一个用于阶段2。每天早上,我检查所有第1阶段的工作是否都以视觉方式完成。只有这样,我才开始第二阶段。通过在单个python脚本中组合所有阶段和作业管理,是否有一种更优雅/自动化的方法?我如何知道工作是否完成?工作流程类似于以下内容:w…

Python-Excel导出 - python

我有以下代码:import pandas as pd import requests from bs4 import BeautifulSoup res = requests.get("https://www.bankier.pl/gielda/notowania/akcje") soup = BeautifulSoup(res.cont…

Python:传递记录器是个好主意吗? - python

我的Web服务器的API日志如下:started started succeeded failed 那是同时收到的两个请求。很难说哪一个成功或失败。为了彼此分离请求,我为每个请求创建了一个随机数,并将其用作记录器的名称logger = logging.getLogger(random_number) 日志变成[111] started [222] start…