Я ищу понятный способ настройки приложения 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"/>
Так что я хотел бы знать:
- Какие минимальные шаги необходимы для запуска этого минимального приложения?
- Можно ли вообще запустить собственный сервер? Как насчет использования нескольких портов?