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