在 Azure 应用服务上部署 FastAPI 和 uvicorn

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

非常感谢帮助!

nav*_*ule 8

适用于 Linux 的 Azure 应用服务及其 Oryx 构建运行程序在识别 Python Web 应用程序时使用GunicornWSGI 服务器运行它们。因此,您的启动脚本可以使用 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


Jas*_*Pan 4

部署 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)

在此输入图像描述

结果:

在此输入图像描述