Blo*_*ner 10 deployment azure azure-web-app-service fastapi uvicorn
我想将一个简单的 FastAPI/uvicorn 部署到 Azure 应用程序服务上。
每次部署时,一切似乎都运行顺利,但当我输入 Web 应用程序的 URL 时,我会收到以下错误消息:
在我的本地机器上,uvicorn 工作正常。在我的网络服务上,我运行 python 3.7 和 fastapi 0.62.0。
每次部署时,我都会启动一个名为startup.sh的文档,其中仅包含一行代码:
python -m uvicorn main:app --host 0.0.0.0 --port 80
非常感谢帮助!
适用于 Linux 的 Azure 应用服务及其 Oryx 构建运行程序在识别 Python Web 应用程序时使用Gunicorn
WSGI 服务器运行它们。因此,您的启动脚本可以使用 Gunicorn 命令在 Gunicorn 的辅助类的帮助下启动 FastAPI 应用程序uvicorn.workers.UvicornWorker
。
gunicorn -w 2 -k uvicorn.workers.UvicornWorker main:app
Run Code Online (Sandbox Code Playgroud)
表示-w
您希望以 Gunicorn 作为主节点启动的工作线程数量。
或者,您可以使用作为gunicorn参数提供的配置文件自动计算工作人员数量,如下所示。
gunicorn --config gunicorn.py main:app
Run Code Online (Sandbox Code Playgroud)
Gunicorn.py可以具有计算工作进程数量和 Gunicorn 的其他配置参数的逻辑,如下所示。
import multiprocessing
import os
name = "Gunicorn config for FastAPI"
accesslog = "/home/user/fastapi/gunicorn-access.log"
errorlog = "/home/user/fastapi/gunicorn-error.log"
bind = "0.0.0.0:8000"
worker_class = "uvicorn.workers.UvicornWorker"
workers = multiprocessing.cpu_count () * 2 + 1
Run Code Online (Sandbox Code Playgroud)
还有详细的分步教程,演示如何在短短 30 分钟内在 Azure 应用服务上部署 FastAPI
部署 webapp 后,我添加了一些模块并在门户上添加启动命令。这个对我有用。(下载示例代码)
1.命令如下:
您还可以在requirements.txt中添加fastapi,uvicorn,uvloop,httptools,让程序在部署时自动安装这些模块。
root@3a***a3:/home/site/wwwroot# pip install fastapi
root@3a***a3:/home/site/wwwroot# pip install uvicorn
root@3a***a3:/home/site/wwwroot# pip install uvloop
root@3a***a3:/home/site/wwwroot# pip install httptools
Run Code Online (Sandbox Code Playgroud)
2. 设置->配置->常规设置->启动命令。
gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13092 次 |
最近记录: |