Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве вы развернете веб-приложение на Python (Django, Flask или FastAPI) в службе приложений Azure. Служба Служба приложений Azure — это полностью управляемая служба веб-хостинга, которая поддерживает приложения Python, размещенные в среде сервера Linux.
Чтобы пройти это краткое руководство, вам понадобится:
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Python 3.14 или более поздней версии, установленный локально.
Примечание.
В этой статье содержатся текущие инструкции по развертыванию веб-приложения Python с помощью службы приложение Azure. Python в Windows больше не поддерживается.
Перейти к концу
Вы можете быстро развернуть пример приложения в ходе данного руководства, используя Интерфейс командной строки разработчика Azure, и увидеть его работу в Azure. Просто выполните следующие команды в облачной оболочке Azure и следуйте подсказкам.
mkdir flask-quickstart
cd flask-quickstart
azd init --template https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
azd up
Чтобы удалить ресурсы, выполните следующие действия.
azd down
Пример приложения
Это краткое руководство можно выполнить с помощью Flask, Django или FastAPI. Чтобы помочь в работе с этим кратким руководством, предоставляется пример приложения для каждой платформы. Скачайте или клонируйте пример приложения на локальную рабочую станцию.
git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
Для локального запуска приложения:
Перейдите в папку приложения:
cd msdocs-python-flask-webapp-quickstartСоздайте виртуальную среду для приложения:
py -m venv .venv .venv\scripts\activateУстановка зависимостей:
pip install -r requirements.txtЗапустите приложение:
flask runВ веб-браузере перейдите к примеру приложения по адресу
http://localhost:5000.
Возникли проблемы? Сообщите нам об этом.
Создание веб-приложения в Azure
Чтобы разместить приложение в Azure, необходимо создать веб-приложение службы Служба приложений Azure. Вы можете создать веб-приложение с помощью Azure CLI, VS Code, пакета расширений средств Azure или портал Azure.
Команды Azure CLI моно выполнять на компьютере с установленным Azure CLI.
Создайте ресурсы Azure, а затем развернуте приложение с помощью отдельных команд Azure CLI.
При необходимости войдите в Azure с помощью az login.
az login
Замените <app-name> на глобально уникальное имя. Создайте группу ресурсов и план App Service, а затем создайте веб-приложение с помощью az webapp create.
az group create --name myResourceGroup --location eastus
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku P0v3 --is-linux
az webapp create --name <app-name> --resource-group myResourceGroup --plan myAppServicePlan --runtime "PYTHON:3.14"
az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
- Используйте
--runtimeпараметр, чтобы определить версию Python, в которой работает ваше приложение. В этом примере используется Python 3.14. Чтобы перечислить поддерживаемые среды выполнения Python, используйтеaz webapp list-runtimes --os-type linux --runtime python --output table. - Используйте
--skuпараметр для определения размера (CPU и памяти) и стоимости тарифного плана App Service. В этом примере используется сервисный план P0v3 (Premium v3), который требует затрат на подписку Azure. Полный список планов службы приложений см. в разделе "Цены на службу приложений". - Замените
eastusна предпочитаемый регион. Чтобы перечислить доступные регионы, запускайтеaz account list-locationsс--output table. - Настройка
SCM_DO_BUILD_DURING_DEPLOYMENTпозволяет использовать сборку Oryx, включая установку зависимостей в requirements.txt, при развертывании архива исходного кода.
Создайте ZIP-файл с файлами приложения, включая requirements.txt, в корне архива. Исключайте локальные файлы, такие как .venv, .git и .env. Инструкции для конкретной платформы см. в разделе Создание ZIP-файла приложения на вкладке Развертывание с помощью ZIP-файла. Затем разверните архив с помощью az webapp deploy:
az webapp deploy --name <app-name> --resource-group myResourceGroup --src-path <zip-file-path> --type zip
Развертывание может занять несколько минут. Перейдите к https://<app-name>.azurewebsites.net, чтобы просмотреть приложение. Чтобы транслировать логи, включите их, запустив az webapp log config --name <app-name> --resource-group myResourceGroup --docker-container-logging filesystem, а затем запустите az webapp log tail --name <app-name> --resource-group myResourceGroup.
Возникли проблемы? Сообщите нам об этом.
Развертывание кода приложения в Azure
Служба приложений Azure поддерживает несколько методов развертывания вашего кода приложения в Azure, включая GitHub Actions и все основные средства CI/CD. В этой статье рассматривается развертывание кода с локальной рабочей станции в Azure.
Команды Azure CLI на предыдущем этапе создали ресурсы и развернули ваше приложение. Вы можете перейти к следующему этапу.
Возникли проблемы? Сначала ознакомьтесь с руководством по устранению неполадок. Если это не поможет, сообщите нам об этом.
Настройка скрипта запуска
На основе наличия определенных файлов в развертывании Служба приложений автоматически определяет, является ли приложение Django или Flask приложением и выполняет действия по умолчанию для запуска приложения. Для приложений, основанных на других веб-фреймворках, таких как FastAPI, возможно, потребуется настроить скрипт запуска для App Service для запуска вашего приложения. В противном случае App Service запускает стандартное приложение только для чтения, расположенное в папке opt/defaultsite .
- Python 3.14 и новее: App Service автоматически обнаруживает и запускает приложения FastAPI. Команда запуска не требуется.
- Python 3.13 и более ранние: Необходимо настроить пользовательскую команду запуска.
Дополнительные сведения о том, как Служба приложений запускает приложения Python и как можно сконфигурировать и кастомизировать его поведение в вашем приложении, см. в статье "Настройка приложения Python Linux для Службы приложений Azure".
Служба приложений автоматически обнаруживает наличие приложения Flask. Для этого краткого руководства не требуется дополнительная конфигурация.
Переход в приложение
Перейдите к развернутому приложению в веб-браузере. Вы можете перейти по ссылке на портале Azure. Перейдите на страницу обзора и выберите домен по умолчанию. Если видите страницу приложения по умолчанию, подождите минуту и обновите браузер.
Пример кода Python запускает контейнер Linux в Службе приложений с помощью встроенного образа.
Поздравляем! Вы развернули свое приложение Python в Cлужбе приложений.
Возникли проблемы? Сначала ознакомьтесь с руководством по устранению неполадок. Если это не поможет, сообщите нам об этом.
Логи потока
Служба приложений Azure записывает все сообщения в консоль, чтобы помогать вам диагностировать проблемы с вашим приложением. Примеры приложений включают инструкции print() для демонстрации этой возможности.
@app.route('/')
def index():
print('Request for index page received')
return render_template('index.html')
@app.route('/favicon.ico')
def favicon():
return send_from_directory(os.path.join(app.root_path, 'static'),
'favicon.ico', mimetype='image/vnd.microsoft.icon')
@app.route('/hello', methods=['POST'])
def hello():
name = request.form.get('name')
if name:
print('Request for hello page received with name=%s' % name)
return render_template('hello.html', name = name)
else:
print('Request for hello page received with no name or blank name -- redirecting')
return redirect(url_for('index'))
Вы можете просмотреть содержимое журналов диагностики Служба приложений с помощью Azure CLI, VS Code или портал Azure.
Сначала необходимо настроить службу приложение Azure для вывода журналов в файловую систему Служба приложений с помощью команды az webapp log config.
az webapp log config \
--web-server-logging filesystem \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
Чтобы выполнить потоковую передачу журналов, используйте команду az webapp log tail.
az webapp log tail \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
Обновите домашнюю страницу в приложении или попытайтесь выполнить другие запросы, чтобы создать какие-то сообщения журнала. Результат должен выглядеть следующим образом.
Starting Live Log Stream ---
2021-12-23T02:15:52.740703322Z Request for index page received
2021-12-23T02:15:52.740740222Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET / HTTP/1.1" 200 1360 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:52.841043070Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 200 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:52.884541951Z 169.254.130.1 - - [23/Dec/2021:02:15:52 +0000] "GET /static/images/azure-icon.svg HTTP/1.1" 200 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:15:53.043211176Z 169.254.130.1 - - [23/Dec/2021:02:15:53 +0000] "GET /favicon.ico HTTP/1.1" 404 232 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.304306845Z Request for hello page received with name=David
2021-12-23T02:16:01.304335945Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "POST /hello HTTP/1.1" 200 695 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.398399251Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 304 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
2021-12-23T02:16:01.430740060Z 169.254.130.1 - - [23/Dec/2021:02:16:01 +0000] "GET /static/images/azure-icon.svg HTTP/1.1" 304 0 "https://msdocs-python-webapp-quickstart-123.azurewebsites.net/hello" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"
Возникли проблемы? Сначала ознакомьтесь с руководством по устранению неполадок. Если это не поможет, сообщите нам об этом.
Очистка ресурсов
Завершив работу с примером приложения, можно удалить все ресурсы для приложения в Azure. Удаление группы ресурсов гарантирует, что вы не понесете дополнительных расходов и поможет содержать вашу подписку Azure в порядке. Удаление группы ресурсов также повлечет удаление всех ресурсов в группе ресурсов, что является самым быстрым способом удаления всех ресурсов Azure для приложения.
Удалите группу ресурсов с помощью команды az group delete.
az group delete \
--name msdocs-python-webapp-quickstart \
--no-wait
Аргумент --no-wait позволяет команде возвращать сведения до завершения операции.
Возникли проблемы? Сообщите нам об этом.