繁体   English   中英

在Azure Web Apps中设置Python服务器

[英]Setting up a Python server in Azure Web Apps

我正在寻找一种配置Flask应用程序以在Azure Web Apps上运行的可理解的方式。 尽管我知道使用现成的服务会带来一些要求,但我希望能够使环境尽可能接近原始环境。

我对本地设置的赞赏是:

  • 仅通过运行.py脚本即可使用Waitress运行服务器的简单方法
  • 将我的文件作为可导入的“开发”包,提供了一种无需路径操作但文件系统中位于任意位置的情况( pip install -e ./

设置应用程序并使用Flask启动它非常容易。 这是我最简单的app.py

from flask import Flask

app = Flask(__name__)


@app.route('/')
def main():
    return 'Hi.'


if __name__ == '__main__':
    app.run('0.0.0.0', 5000)

现在有本指南 ,介绍如何在Azure中建立Python网站。 我认为它有很多不必要的步骤,可以从单独的服务器上下载车轮,修改os.path以导入库,并使用virtualenv 不要误会我的意思: virtualenv很有用,但我只是尝试将过程缩减到最低限度。 另外,对我而言,至少virtualenv激活脚本不起作用。

微软本人本次的另一本指南说,Windows开发人员应该改为使用适用于Linux的Azure Web App。 但是暂时,我仍停留在Windows应用程序上。 他们提供了一些配置帮助。

提供了Python安装。 它奇怪地位于D:\\home并且无法使用简单的python命令启动其解释器。 尽管可以安装库: python -m pip install lib 配置文件应该从某些Visual Studio模板构造而来,至少我的Visual Studio无法找到。 因此,我现在在第一个指南中填写的是

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
  <handlers>
    <add name="PythonHandler" path="*" verb="*" modules="FastCgiModule"
        scriptProcessor="D:\home\Python364x64\python.exe|D:\home\Python364x64\wfastcgi.py"
        resourceType="Unspecified" requireAccess="Script"/>
  </handlers>
</system.webServer>
</configuration>

应该在文档的某处添加另一行。 虽然,目前尚不清楚确切的位置。

<add key="WSGI_HANDLER" value="FlaskAzurePublishExample.app"/>

所以我想知道的是:

  • 要运行此最低限度的应用程序,最少需要什么步骤?
  • 我可以完全运行自己的服务器吗? 几个使用不同的端口怎么样?

对于第一个问题,您可以参考我对其他现有SO线程的回答。Hosting Flask(Python)应用程序抛出CGI错误以运行最小的Flask应用程序。 而且您的代码中存在一个问题,该问题由wfastcgi.py使用app.run() ,而不是使用app.run('<ip or host for listening>', '<a port you want>') 在Azure上,IIS作为Python的HTTP服务器,可以通过FastCGI运行flask应用程序。

因此,对于第二个问题,您可以在IIS反向代理后面运行自己的服务器,但是Azure网站上的唯一端口是IIS上的80端口,用于通过FastCGI服务Python Web App。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM