Настройка сервера Python в веб-приложениях Azure - PullRequest
1 голос
/ 14 мая 2019

Я ищу понятный способ настройки приложения Flask для запуска в Azure Web Apps. Я бы хотел, чтобы среда была максимально приближена к исходной, хотя я понимаю, что использование готового сервиса сопряжено с некоторыми требованиями.

Что я ценю в своей локальной настройке:

  • Простой способ запустить сервер с Официанткой, просто запустив .py скрипт
  • Наличие моих файлов в качестве импортируемого пакета "разработки", обеспечивающего ситуацию без манипуляций с путями, но с произвольным расположением в файловой системе (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)

Теперь есть это руководство о том, как запустить веб-сайт Python в Azure. Я думаю, что он имеет множество ненужных шагов, загрузку колес с отдельного сервера, изменение os.path для импорта библиотек и использование virtualenv. Не поймите меня неправильно: virtualenv полезно, но я просто пытаюсь сократить процесс до минимума. Кроме того, для меня по крайней мере сценарий активации virtualenv не работает.

Еще одно руководство , на этот раз от самих Microsoft говорит, что разработчики Windows должны перейти на Azure Web App для Linux. Но пока я застрял с приложением 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"/>

Так что я хотел бы знать:

  • Какие минимальные шаги необходимы для запуска этого минимального приложения?
  • Можно ли вообще запустить собственный сервер? Как насчет использования нескольких портов?

1 Ответ

2 голосов
/ 14 мая 2019

По первому вопросу вы можете обратиться к моему ответу для другого существующего потока SO. Приложение Hosting Flask (Python) выдает ошибку CGI для запуска минимального приложения Flask. И есть проблема в вашем коде, которая запускается wfastcgi.py с использованием app.run(), а не app.run('<ip or host for listening>', '<a port you want>'). В Azure IIS в качестве HTTP-сервера для Python для запуска приложения фляги через FastCGI.

Итак, для второго вопроса вы можете запустить свой собственный сервер за обратным прокси-сервером IIS, но единственным портом на веб-сайте Azure является 80 на IIS для обслуживания Python Web App через FastCGI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...