能否从App Engine标准环境运行Python模块子流程?

能否从App Engine标准环境运行Python模块子流程?,python,google-app-engine,google-cloud-platform,subprocess,Python,Google App Engine,Google Cloud Platform,Subprocess,能否在谷歌云平台上的标准应用程序引擎中运行Python模块子流程 我想部署一个Flask web应用程序,但它涉及子流程模块,它调用一些批处理脚本。批处理脚本执行当前没有Python API的关键CL命令,因此我想不出一个简单的方法来消除对子流程的依赖 我是否需要将其部署到Flexible App Engine上才能运行批处理文件 任何指导都是有帮助的,我在GCP文档中找不到明确的答案,但是一些关于在哪里寻找的建议会很好。谢谢大家! 似乎是可行的,但它必须在请求处理中完成。你看了吗 “背景线程

能否在谷歌云平台上的标准应用程序引擎中运行Python模块子流程

我想部署一个Flask web应用程序,但它涉及子流程模块,它调用一些批处理脚本。批处理脚本执行当前没有Python API的关键CL命令,因此我想不出一个简单的方法来消除对子流程的依赖

我是否需要将其部署到Flexible App Engine上才能运行批处理文件


任何指导都是有帮助的,我在GCP文档中找不到明确的答案,但是一些关于在哪里寻找的建议会很好。谢谢大家!

似乎是可行的,但它必须在请求处理中完成。你看了吗

“背景线程


App Engine标准环境中的Python 3没有沙箱限制,因此您可以自由创建位于请求环境之外的线程或进程。可以使用Python的内置线程和多处理功能生成线程和进程。但是请注意,新线程或进程可能不会在入站请求之后运行est被服务。”

似乎是可行的,但它必须在请求处理中完成。你看了吗

“背景线程


App Engine标准环境中的Python 3没有沙箱限制,因此您可以自由创建位于请求环境之外的线程或进程。可以使用Python的内置线程和多处理功能生成线程和进程。但是请注意,新线程或进程可能不会在入站请求之后运行提供est。”

IDK脚本的用途是什么,但是,在app engine STD和FLEX上可以运行子流程,可能需要创建FLEX自定义运行时,以便为bash脚本添加必要的Linux依赖项

我在GAE FLEX/STD ENV上尝试了这个示例代码

app.yaml[FLEX]

runtime: python
env: flex
runtime_config:
  python_version: 3.7

entrypoint: gunicorn -b :$PORT main:app
app.yaml[STD]

runtime: python37

entrypoint: gunicorn -b :$PORT main:app
requirements.txt

Flask==1.0.2
gunicorn
main.py

从烧瓶导入烧瓶
app=烧瓶(名称)
@应用程序路径(“/”)
def hello():
导入子流程
process=subprocess.run(['ls','-lha'],check=True,stdout=subprocess.PIPE,universal\u newlines=True)
输出=process.stdout
返回输出
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run(host='127.0.0.1',port=8080,debug=True)

IDK脚本的用途是什么,但是,在appengine STD和FLEX上可以运行子流程,可能需要创建FLEX自定义运行时,为bash脚本添加必要的Linux依赖项

我在GAE FLEX/STD ENV上尝试了这个示例代码

app.yaml[FLEX]

runtime: python
env: flex
runtime_config:
  python_version: 3.7

entrypoint: gunicorn -b :$PORT main:app
app.yaml[STD]

runtime: python37

entrypoint: gunicorn -b :$PORT main:app
requirements.txt

Flask==1.0.2
gunicorn
main.py

从烧瓶导入烧瓶
app=烧瓶(名称)
@应用程序路径(“/”)
def hello():
导入子流程
process=subprocess.run(['ls','-lha'],check=True,stdout=subprocess.PIPE,universal\u newlines=True)
输出=process.stdout
返回输出
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run(host='127.0.0.1',port=8080,debug=True)

App Engine标准不支持子流程。我不确定是否灵活。但是,您假设存在一个用户环境Shell。这不是一个好主意。我会使用Cloud Run,您可以控制容器的所有内容。应用程序引擎标准不支持子流程。我不确定是否灵活。但是,您假设存在一个用户环境Shell。这不是一个好主意。我将使用Cloud Run,在这里您可以控制容器的一切。