Настройка локальной среды для развертывания веб-приложений Python в Azure
В этой статье описывается настройка локальной среды для разработки веб-приложений Python и их развертывания в Azure. Веб-приложение может быть чистым Python или использовать одну из распространенных веб-платформ на основе Python, таких как Django, Flaskили FastAPI.
Веб-приложения Python, разработанные локально, можно развернуть в таких службах, как Azure App Service, контейнерные приложения Azureили статические веб-приложения Azure. Существует множество вариантов развертывания. Например, для развертывания службы приложений можно выбрать развертывание из кода, контейнера Docker или статического веб-приложения. При развертывании из кода, можно использовать Visual Studio Code с Azure CLI, локальный репозиторий Git или GitHub Actions. При развертывании в контейнере Docker это можно сделать из реестра контейнеров Azure, Docker Hub или любого частного реестра.
Прежде чем продолжить работу с этой статьей, мы рекомендуем ознакомиться с Настройка среды разработки для получения инструкций по настройке среды разработки для Python и Azure. Ниже мы обсудим установку и настройку, относящиеся к разработке Python веб-приложений.
После установки локальной среды для разработки веб-приложений Python вы будете готовы решить следующие статьи:
- Краткое руководство: Создание веб-приложения на Python (Django или Flask) в службе приложений Azure.
- руководство по . Развертывание веб-приложения Python (Django или Flask) с помощью PostgreSQL в Azure
- Создание и развертывание веб-приложения Flask в Azure с управляемым удостоверением, назначенным системой,
Работа с 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, скорее всего, вы будете работать с одним или несколькими из следующих расширений:
Расширение службы приложений Azure позволяет взаимодействовать со службой приложений Azure из Visual Studio Code. Служба приложений предоставляет полностью управляемое размещение для веб-приложений, включая веб-сайты и веб-API.
Расширение для статических веб-приложений Azure позволяет создавать статические веб-приложения Azure напрямую из VS Code. Статические веб-приложения бессерверные и хороший выбор для размещения статического содержимого.
Если вы планируете работать с контейнерами, установите:
Расширение Docker для создания и работы с контейнерами локально. Например, можно запустить контейнерное веб-приложение Python в Службе приложений Azure с помощью веб-приложений для контейнеров.
Расширение Azure Container Apps для создания и развертывания контейнерных приложений прямо из Visual Studio Code.
Существуют другие расширения, такие как службы хранилища Azure, базы данных Azureи расширения ресурсов Azure. Вы всегда можете добавить эти и другие расширения по мере необходимости.
Расширения в Visual Studio Code доступны так, как вы ожидаете в типичном интерфейсе интегрированной среды разработки и с поддержкой расширенных ключевых слов с помощью палитры команд VS Code . Чтобы получить доступ к палитре команд, используйте сочетание клавиш CTRL+SHIFT+P. Палитра команд — это хороший способ просмотреть все возможные действия, которые можно выполнить в ресурсе Azure. Скриншот ниже показывает некоторые действия для 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 должен быть установлен на компьютере и доступен в любом случае.
Команды Azure CLI
При локальной работе с веб-приложениями с помощью команд Azure CLI обычно вы будете работать со следующими командами:
Команда | Описание |
---|---|
az webapp | Управляет веб-приложениями. Включает подкоманды create и up для создания веб-приложения или для создания и развертывания из локальной рабочей области. |
az container app | Управляет приложениями контейнеров Azure. |
az staticwebapp | Управляет статическими веб-приложениями Azure. |
az group | Управляет группами ресурсов и развертываниями шаблонов. Используйте подкоманду create, чтобы создать группу ресурсов для размещения в ней ваших ресурсов 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 с помощью Azure SDK для Python. Этот пакет SDK подробно рассматривается в разделе Использование библиотек Azure (SDK) для Python. В этом разделе мы кратко рассмотрим некоторые ключевые пакеты пакета SDK, которые будут использоваться в веб-разработке. Кроме того, мы рассмотрим пример рекомендаций по проверке подлинности кода с помощью ресурсов Azure.
Ниже приведены некоторые пакеты, часто используемые в разработке веб-приложений. Пакеты можно установить непосредственно в виртуальной среде с помощью pip
. Или поместите имя индекса пакета Python (Pypi) в файл requirements.txt.
Документация по пакету SDK | Установить | Индекс пакета Python |
---|---|---|
Azure Identity | pip install azure-identity |
azure-identity |
Объекты BLOB в хранилище 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-identity позволяет вашему веб-приложению проходить аутентификацию с Microsoft Entra ID. Для проверки подлинности в коде веб-приложения рекомендуется использовать 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.
Шаг 2: Создать приложение "hello world".
Создайте пример проекта с помощью команды django-admin startproject. Проект содержит файл manage.py, который является точкой входа для запуска приложения.
django-admin startproject hello_world
шаг 3. локально запустить код.
Django использует WSGI для запуска приложения.
python hello_world\manage.py runserver
шаг 4: Просмотрите приложение Hello World.
На этом этапе добавьте файл requirements.txt, а затем можно развернуть веб-приложение в Azure или контейнеризировать его с помощью Docker, а затем развернуть его.
Дальнейшие действия
- Быстрый старт: как создать веб-приложение Python (Django или Flask) в службе приложений Azure.
- руководство по . Развертывание веб-приложения Python (Django или Flask) с помощью PostgreSQL в Azure
- Создание и развертывание веб-приложения Flask в Azure с управляемым удостоверением, назначенным системой,