Обзор. Контейнерное веб-приложение Python в Azure с MongoDB
В этом руководстве показано, как контейнеризировать веб-приложение Python и развернуть его в Azure. Одно контейнерное веб-приложение размещено в службе приложение Azure и использует MongoDB для Azure Cosmos DB для хранения данных. Служба приложений веб-приложение для контейнеров позволяет сосредоточиться на создании контейнеров, не беспокоясь об управлении и обслуживании базового оркестратора контейнеров. При создании веб-приложений служба приложение Azure является хорошим вариантом для выполнения первых шагов с контейнерами. Дополнительные сведения об использовании контейнеров в Azure см. в статье "Сравнение параметров контейнера Azure".
Изучив данный учебник, вы научитесь:
Создайте и запустите контейнер Docker локально. Этот шаг необязательный.
Создайте образ контейнера Docker непосредственно в Azure.
Настройте Служба приложений для создания веб-приложения на основе образа контейнера Docker.
Следуя этому руководству, вы будете иметь основу для непрерывной интеграции (CI) и непрерывного развертывания (CD) веб-приложения Python в Azure.
Обзор сервиса
Схема служб, поддерживающая этот учебник, содержит две среды (среда разработчика и Azure) и различные службы Azure, используемые в руководстве.
Компоненты, поддерживающие этот учебник, и показаны на приведенной выше схеме:
-
Базовая функция Служба приложений, которая обеспечивает контейнеризацию, — веб-приложение для контейнеров. служба приложение Azure использует Технология контейнера Docker для размещения встроенных образов и пользовательских образов. В этом руководстве вы создадите образ из кода Python и развернете его в веб-приложении для контейнеров.
Веб-приложение для контейнеров использует веб-перехватчик в реестре для получения уведомлений о новых образах. Отправка нового образа в репозиторий активирует Служба приложений для извлечения образа и перезапуска.
-
Реестр контейнеров Azure позволяет работать с образами Docker и его компонентами в Azure. Он предоставляет реестр, который близок к развертываниям в Azure и обеспечивает контроль доступа, что позволяет использовать группы и разрешения Microsoft Entra.
В этом руководстве источник реестра Реестр контейнеров Azure, но вы также можете использовать Docker Hub или частный реестр с незначительными изменениями.
-
Azure Cosmos DB для MongoDB — это база данных NoSQL, используемая в этом руководстве для хранения данных.
Доступ к ресурсу Azure Cosmos DB осуществляется через строка подключения, который передается в качестве переменной среды в контейнерное приложение.
Проверка подлинности
В этом руководстве вы создадите образ Docker (локально или непосредственно в Azure) и развернете его в службе приложение Azure. Служба приложений извлекает образ контейнера из репозитория Реестр контейнеров Azure.
Служба приложений использует управляемое удостоверение для извлечения изображений из Реестр контейнеров Azure. Управляемое удостоверение позволяет предоставлять веб-приложению разрешения, чтобы получить доступ к другим ресурсам Azure без необходимости указывать учетные данные. В частности, в этом руководстве используется управляемое удостоверение, назначенное системой. Управляемое удостоверение настраивается во время установки Служба приложений для использования образа контейнера реестра.
В примере веб-приложения учебника для хранения данных используется MongoDB. Пример кода подключается к Azure Cosmos DB с помощью строка подключения.
Необходимые компоненты
Для работы с этим руководством потребуется следующее:
Учетная запись Azure, в которой можно создать:
- Реестр контейнеров Azure;
- Служба приложений Azure
- Azure Cosmos DB для MongoDB (или доступ к эквиваленту). Чтобы создать базу данных Azure Cosmos DB для MongoDB, рекомендуется выполнить действия, описанные в части 2 этого руководства.
Visual Studio Code или Azure CLI в зависимости от используемого средства.
- Для Visual Studio Code вам потребуется расширение Docker и расширение службы приложение Azure.
Пакеты Python:
Docker установлен локально, если вы хотите локально запустить контейнер.
Пример приложения
Пример приложения Python — это приложение проверки ресторана, которое сохраняет ресторан и просматривает данные в MongoDB. Пример веб-приложения с помощью PostgreSQL см. в статье "Создание и развертывание веб-приложения Flask в Azure с управляемым удостоверением".
В конце руководства вы получите развернутое и запущенное в Azure приложение проверки ресторана, которое выглядит как на снимке экрана ниже.