在Google App Engine上部署Quart Python应用程序

4

我正在尝试通过Google Cloud的App Engine标准部署一个基于Quart的Python应用程序。然而,我一直收到以下错误:

Traceback (most recent call last):
  File "/env/lib/python3.7/site-packages/gunicorn/workers/gthread.py", line 284, in handle
    keepalive = self.handle_request(req, conn)
  File "/env/lib/python3.7/site-packages/gunicorn/workers/gthread.py", line 333, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
TypeError: __call__() missing 1 required positional argument: 'send'

我知道Quart是一个ASGI解决方案,而Google App Engine是无服务器设置。将Quart部署到AWS Lambda的建议之一是使用Magnum。那是否也适用于Google Cloud App Engine呢?

非常感谢您的帮助。


你好,欢迎来到stackoverflow。你能提供一个最小可复现示例来解释你的问题吗?或者更好地解释一下你已经尝试过什么了吗? - sammy
2个回答

1

来自https://github.com/pgjones/quart/issues/68

Quart是一个ASGI框架,而不是WSGI框架,这意味着它无法与无服务器一起使用。它可以与Mangum一起使用,后者是无服务器的ASGI替代品。

这也意味着Quart将不兼容App Engine、Cloud Functions等。

但是,它可以通过支持ASGI的HTTP服务器(如Uvicorn)很好地与Cloud Run配合使用。


1

Magnum是一个用于将ASGI应用程序与AWS Lambda和API Gateway配合使用的适配器,未经Google GCP测试。

我建议遵循@di的建议,使用Uvicorn与Cloud Run。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接