首页 > 解决方案 > 在 Azure 中部署 Python-Flask api

问题描述

我已经在 Azure 中部署了 Python-Flask API。它在开发环境中工作正常。它具有 .txt 文件中提到的以下依赖项。

我有一个app.py类,它有一些包含一些DB CURD操作的函数。它还有一个db.py,其中包含以下代码:

import pyodbc cnxn = pyodbc.connect(cs)

但是当我导航到https://kmsazapi.azurewebsites.net/时,它会给出以下错误
:( 应用程序错误。 如果您是应用程序管理员,则可以访问诊断资源。

请从 Azure 中找到应用程序日志:

2019-01-19T16:30:46.743756546Z 2019-01-19T16:30:46.893500456Z 启动 OpenBSD 安全外壳服务器:sshd。2019-01-19T16:30:46.921319668Z 运行 python /usr/local/bin/entrypoint.py 2019-01-19T16:30:47.042444539Z 执行:2019-01-19T16:30:47.042628845Z python --version 2019- 01-19T16:30:47.060630336Z Python 3.7.1 2019-01-19T16:30:47.060830442Z 执行:2019-01-19T16:30:47.060993448Z pip --version 2019-01-19T16:630:49.20904 pp .1 来自 /home/site/wwwroot/antenv/lib/python3.7/site-packages/pip (python 3.7) 2019-01-19T16:30:49.214266747Z 找到烧瓶应用程序 2019-01-19T16:30:49.219978635Z执行:2019-01-19T16:30:49.219990835Z。antenv/bin/activate 2019-01-19T16:30:49.224706090Z 2019-01-19T16:30:49.224798193Z 执行:2019-01-19T16:30:49.224971698Z GUNICORN_CMD_ARGS="--bind=0.0.0.0 600" gunicorn 应用:http://0.0.0.0:8000 (36) 2019-01-19T16:30:50.184216749Z [2019-01-19 16:30:50 +0000] [36] [INFO] 使用工作者:同步 2019-01- 19T16:30:50.194083973Z [2019-01-19 16:30:50 +0000] [39] [INFO] 使用 pid 引导工作人员:39

2019-01-19T16:30:50.967282324Z [2019-01-19 16:30:50 +0000] [39] [错误] 工作进程中的异常

2019-01-19T16:30:50.967302024Z Traceback(最近一次通话最后一次):2019-01-19T16:30:50.967306124Z 文件“/usr/local/lib/python3.7/site-packages/gunicorn/arbiter.py ”,第 583 行,在 spawn_worker 2019-01-19T16:30:50.967311525Z worker.init_process() 2019-01-19T16:30:50.967325625Z 文件“/usr/local/lib/python3.7/site-packages/gunicorn /workers/base.py”,第 129 行,在 init_process 2019-01-19T16:30:50.967329625Z self.load_wsgi() 2019-01-19T16:30:50.967332825Z 文件中“/usr/local/lib/python3.7 /site-packages/gunicorn/workers/base.py",第 138 行,在 load_wsgi 2019-01-19T16:30:50.967336425Z self.wsgi = self.app.wsgi() 2019-01-19T16:30:50.967347026Z文件“/usr/local/lib/python3.7/site-packages/gunicorn/app/base.py”,第 67 行,在 wsgi 2019-01-19T16:30:50.967350926Z self.callable = self.load() 2019-01-19T16:30:50.967354226Z 文件“/usr/local/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py”,第 52 行,加载 2019-01-19T16:30:50.967357626Z 返回 self.load_wsgiapp( ) 2019-01-19T16:30:50.967361026Z 文件“/usr/local/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py”,第 41 行,在 load_wsgiapp 2019-01-19T16:30 中: 50.967364426Z 返回 util.import_app(self.app_uri) 2019-01-19T16:30:50.967367726Z 文件“/usr/local/lib/python3.7/site-packages/gunicorn/util.py”,第 350 行,在 import_app 2019-01-19T16:30:50.967371427Z在 load_wsgiapp 2019-01-19T16:30:50.967364426Z 返回 util.import_app(self.app_uri) 2019-01-19T16:30:50.967367726Z 文件“/usr/local/lib/python3.7/site-packages/gunicorn/ util.py”,第 350 行,在 import_app 2019-01-19T16:30:50.967371427Z在 load_wsgiapp 2019-01-19T16:30:50.967364426Z 返回 util.import_app(self.app_uri) 2019-01-19T16:30:50.967367726Z 文件“/usr/local/lib/python3.7/site-packages/gunicorn/ util.py”,第 350 行,在 import_app 2019-01-19T16:30:50.967371427Z 导入(模块)2019-01-19T16:30:50.967374727Z 文件“/home/site/wwwroot/application.py”,第 7 行,2019-01-19T16:30:50.967378427Z 导入数据库 2019-01-19T16: 30:50.967381627Z 文件“/home/site/wwwroot/db.py”,第 1 行,在 2019-01-19T16:30:50.967385027Z 导入 pyodbc 2019-01-19T16:30:50.967388327Z ImportError: libodbc.so。 2:无法打开共享对象文件:没有这样的文件或目录 2019-01-19T16:30:50.967653236Z [2019-01-19 16:30:50 +0000] [39] [INFO] Worker exiting (pid: 39) 2019-01-19T16:30:51.050986468Z [2019-01-19 16:30:51 +0000] [36] [INFO] 关闭:大师 2019-01-19T16:30:51.051229076Z [2019-01-19 16:30:51 +0000] [36] [INFO] 原因:Worker 无法启动。 2019-01-19T16:30:51.102156846Z

我错过了什么?

标签: python-3.xazure

解决方案


更新:0115:

如果将 python 应用程序部署到 Windows 的 Web 应用程序,则可以安装 python 扩展程序,如下所示:转到 azure 门户 -> 您的应用程序服务 -> 扩展程序 -> 添加 -> 选择扩展程序:

在此处输入图像描述

在此处输入图像描述


你如何部署你的烧瓶应用程序?

部署可以参考官方文档。我遵循了文档,并且可以在 azure 中很好地使用该站点https://xxx.azurewebsites.net/home

我的代码:

from flask import Flask
app = Flask(__name__)

@app.route("/home")
def home():
    return "Hello World a nice day!"

部署到 azure 后,该站点运行良好:

在此处输入图像描述


推荐阅读