Настройка локальной среды для развертывания веб-приложений Python в Azure

В этой статье описывается настройка локальной среды для разработки веб-приложений Python и их развертывания в Azure. Веб-приложение может быть чистым Python или использовать одну из распространенных веб-платформ на основе Python, таких как Django, Flask или FastAPI.

Веб-приложения Python, разработанные локально, можно развернуть в таких службах, как служба приложение Azure, приложения контейнеров Azure или Статические веб-приложения Azure. Существует множество вариантов развертывания. Например, для Служба приложений развертывания можно выбрать развертывание из кода, контейнера Docker или статического веб-приложения. При развертывании из кода можно развернуть с помощью Visual Studio Code с помощью Azure CLI, из локального репозитория Git или с помощью действий GitHub. При развертывании в контейнере Docker это можно сделать из Реестр контейнеров Azure, Docker Hub или любого частного реестра.

Прежде чем продолжить работу с этой статьей, мы рекомендуем ознакомиться с руководством по настройке среды разработки для Python и Azure. Ниже мы обсудим настройку и настройку, относящиеся к разработке веб-приложений Python.

После установки локальной среды для разработки веб-приложений Python вы будете готовы решить следующие статьи:

Работа с Visual Studio Code

Интегрированная среда разработки Visual Studio Code (IDE) — это простой способ разработки веб-приложений Python и работы с ресурсами Azure, которые используют веб-приложения.

Совет

Убедитесь, что у вас установлено расширение Python . Общие сведения о работе с Python в VS Code см. в статье "Начало работы с Python" в VS Code.

В VS Code вы работаете с ресурсами Azure с помощью расширений VS Code. Расширения можно установить в представлении расширений или сочетание клавиш CTRL+SHIFT+X. Для веб-приложений Python, скорее всего, вы будете работать с одним или несколькими из следующих расширений:

Расширения в Visual Studio Code доступны так же, как и ожидалось в типичном интерфейсе интегрированной среды разработки и с полной ключевое слово поддержкой с помощью палитры команд VS Code. Чтобы получить доступ к палитре команд, используйте сочетание клавиш CTRL+SHIFT+P. Палитра команд — это хороший способ просмотреть все возможные действия, которые можно выполнить в ресурсе Azure. Снимок экрана ниже: некоторые действия для Служба приложений.

A screenshot of the Visual Studio Code command palette for App Service.

Работа с контейнерами разработки в Visual Studio Code

Разработчики Python часто используют виртуальные среды для создания изолированной и автономной среды для конкретного проекта. Виртуальные среды позволяют разработчикам управлять зависимостями, пакетами и версиями Python отдельно для каждого проекта, избегая конфликтов между различными проектами, которые могут требовать разные версии пакетов.

Хотя в Python существуют популярные варианты управления средами, например virtualenv или venvрасширение контейнера разработки Visual Studio Code (на основе открытой спецификации контейнера разработки) позволяет использовать контейнер Docker в качестве полнофункционализованной контейнерной среды. Это позволяет разработчикам определять согласованную и легко воспроизводимую цепочку инструментов со всеми необходимыми инструментами, зависимостями и расширениями, предварительно настроенными. Это означает, что если у вас есть системные требования, конфигурации оболочки или другие языки, можно полностью использовать контейнер разработки для явной настройки всех этих частей проекта, которые могут жить вне базовой среды Python.

Например, разработчик может настроить один контейнер разработки, чтобы включить все необходимое для работы над проектом, включая сервер базы данных PostgreSQL вместе с базой данных проекта и примерами данных, сервер Redis, Nginx, интерфейсный код, клиентские библиотеки, такие как React, и т. д. Кроме того, контейнер будет содержать код проекта, среду выполнения Python и все зависимости проекта Python с правильными версиями. Наконец, контейнер может указать расширения Visual Studio Code, которые должны быть установлены, поэтому вся команда имеет один и тот же инструмент. Поэтому, когда новый разработчик присоединяется к команде, вся среда, включая средства, зависимости и данные, готовы клонироваться на локальный компьютер, и они могут начать работу немедленно.

См. статью "Разработка внутри контейнера".

Работа с Visual Studio 2022

Visual Studio 2022 — это полная интегрированная среда разработки (IDE) с поддержкой разработки приложений Python и множество встроенных средств и расширений для доступа к ресурсам Azure и их развертывания. Хотя в большинстве документаций по созданию веб-приложений Python в Azure основное внимание уделяется использованию Visual Studio Code, Visual Studio 2022 — отличный вариант, если он уже установлен, вы комфортно используете его и используете его для проектов .NET или C++ .

  • Общие сведения см . в Visual Studio | Документация по Python для всех документов, связанных с использованием Python в Visual Studio 2022.

  • Инструкции по настройке см. в статье "Установка поддержки Python в Visual Studio ", в которой описано, как установить рабочую нагрузку Python в Visual Studio 2022.

  • Общий рабочий процесс использования Python для веб-разработки см . в кратком руководстве по созданию первого веб-приложения Python с помощью Visual Studio. Эта статья полезна для понимания того, как создать веб-приложение Python с нуля (но не включает развертывание в Azure).

  • Сведения об использовании Visual Studio 2022 для управления ресурсами Azure и развертывания в Azure см. в статье "Разработка Azure с помощью Visual Studio". Хотя большая часть документации здесь специально упоминание .NET, инструменты для управления ресурсами Azure и развертывания в Azure работают одинаково независимо от языка программирования.

  • Если встроенное средство не доступно в Visual Studio 2022 для определенной задачи управления Или развертывания Azure, вы всегда можете использовать команды Azure CLI.

Работа с другими идентификаторами

Если вы работаете в другой интегрированной среде разработки, которая не имеет явной поддержки Для Azure, вы можете использовать Azure CLI для управления ресурсами Azure. На снимке экрана ниже простое веб-приложение Flask открыто в интегрированной среде разработки PyCharm . Веб-приложение можно развернуть в службе приложение Azure с помощью az webapp up команды. На снимке экрана команда CLI выполняется в эмуляторе встроенного терминала PyCharm. Если у интегрированной среды разработки нет внедренного эмулятора, можно использовать любой терминал и ту же команду. Azure CLI должен быть установлен на компьютере и доступен в любом случае.

A screenshot of the PyCharm IDE with an Azure CLI command deploying a web app.

Команды Azure CLI

При локальной работе с веб-приложениями с помощью команд Azure CLI обычно вы будете работать со следующими командами:

Команда Description
az webapp Управляет веб-приложениями. Включает вложенные команды, создаваемые для создания веб-приложения, а также для создания и развертывания из локальной рабочей области.
az container app Управляет приложениями контейнеров Azure.
az staticwebapp Управляет Статические веб-приложения Azure.
az group Управляет группами ресурсов и развертываниями шаблонов. Используйте подкоманда , создайте группу ресурсов, чтобы поместить ресурсы Azure в систему.
az appservice Управляет планами Служба приложений.
az config Управляемая конфигурация Azure CLI. Чтобы сохранить нажатия клавиш, можно определить расположение по умолчанию или группу ресурсов, которые используются автоматически другими командами.

Ниже приведен пример команды Azure CLI для создания веб-приложения и связанных ресурсов и его развертывания в Azure в одной команде с помощью az webapp up. Выполните команду в корневом каталоге веб-приложения.

az webapp up \
    --runtime PYTHON:3.9 \
    --sku B1 \
    --logs

Дополнительные сведения об этом примере см. в кратком руководстве по развертыванию веб-приложения Python (Django или Flask) в службе приложение Azure.

Помните, что для некоторых рабочих процессов Azure можно также использовать Azure CLI из Azure Cloud Shell. Azure Cloud Shell — это интерактивная, аутентифицированная, доступная в браузере оболочка для управления ресурсами Azure.

Пакеты ключей azure SDK

В веб-приложениях Python вы можете программно ссылаться на службы Azure с помощью пакета SDK Azure для Python. Этот пакет SDK подробно рассматривается в разделе "Использование библиотек Azure (SDK) для Python. В этом разделе мы кратко упоминание некоторые ключевые пакеты пакета SDK, который вы будете использовать в веб-разработке. Кроме того, мы рассмотрим пример проверки подлинности кода с помощью ресурсов Azure.

Ниже приведены некоторые пакеты, часто используемые в разработке веб-приложений. Пакеты можно установить непосредственно pipв виртуальной среде. Или поместите имя индекса пакета Python (Pypi) в файл requirements.txt .

Документация по пакету SDK Установка Индекс пакета Python
Удостоверение Azure pip install azure-identity azure-identity
Большие двоичные объекты службы хранилища Azure pip install azure-storage-blob azure-storage-blob
Azure Cosmos DB pip install azure-cosmos azure-cosmos
Секреты Azure Key Vault pip install azure-keyvault-secrets azure-keyvault-secret

Пакет удостоверений Azure позволяет веб-приложению проходить проверку подлинности с помощью идентификатора Microsoft Entra. Для проверки подлинности в коде веб-приложения рекомендуется использовать DefaultAzureCredential в пакете azure-identity . Ниже приведен пример доступа к служба хранилища Azure. Шаблон аналогичен другим ресурсам Azure.

from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient

azure_credential = DefaultAzureCredential()
blob_service_client = BlobServiceClient(
    account_url=account_url,
    credential=azure_credential)

Будет DefaultAzureCredential выглядеть в предопределенных расположениях для сведений об учетной записи, например в переменных среды или из входа в Azure CLI. Подробные сведения о логике DefaultAzureCredential см. в статье "Проверка подлинности приложений Python в службах Azure" с помощью пакета SDK Azure для Python.

Веб-платформы на основе Python

В разработке веб-приложений Python часто работают с веб-платформами на основе Python. Эти платформы предоставляют такие функциональные возможности, как шаблоны страниц, управление сеансами, доступ к базам данных и простой доступ к объектам HTTP-запроса и ответа. Платформы позволяют избежать необходимости повторного создания колеса для общих функциональных возможностей.

Три распространенных веб-платформы Python: Django, Flask или FastAPI. Эти и другие веб-платформы можно использовать с Azure.

Ниже приведен пример того, как можно быстро приступить к работе с этими платформами локально. Выполняя эти команды, вы в конечном итоге будете использовать приложение, хотя и простой, который можно развернуть в Azure. Выполните эти команды в виртуальной среде.

Шаг 1. Скачивание платформ с помощью pip.

pip install Django

Шаг 2. Создание приложения hello world.

Создайте пример проекта с помощью команды startproject django-admin. Проект содержит файл manage.py , который является точкой входа для запуска приложения.

django-admin startproject hello_world

Шаг 3. Локальный запуск кода.

Django использует WSGI для запуска приложения.

python hello_world\manage.py runserver

Шаг 4. Обзор приложения hello world.

http://127.0.0.1:8000/

На этом этапе добавьте файл requirements.txt , а затем можно развернуть веб-приложение в Azure или контейнеризировать его с помощью Docker, а затем развернуть его.

Следующие шаги