Обзор. Контейнерное веб-приложение Python в Azure с MongoDB

В этом руководстве показано, как контейнеризировать веб-приложение Python и развернуть его в Azure. Одно контейнерное веб-приложение размещено в службе приложение Azure и использует MongoDB для Azure Cosmos DB для хранения данных. Служба приложений веб-приложение для контейнеров позволяет сосредоточиться на создании контейнеров, не беспокоясь об управлении и обслуживании базового оркестратора контейнеров. При создании веб-приложений служба приложение Azure является хорошим вариантом для выполнения первых шагов с контейнерами. Дополнительные сведения об использовании контейнеров в Azure см. в статье "Сравнение параметров контейнера Azure".

Изучив данный учебник, вы научитесь:

Следуя этому руководству, вы будете иметь основу для непрерывной интеграции (CI) и непрерывного развертывания (CD) веб-приложения Python в Azure.

Обзор сервиса

Схема служб, поддерживающая этот учебник, содержит две среды (среда разработчика и Azure) и различные службы Azure, используемые в руководстве.

A screenshot of the services using in the Tutorial - Containerized Python App on Azure.

Компоненты, поддерживающие этот учебник, и показаны на приведенной выше схеме:

  • Служба приложений Azure

    • Базовая функция Служба приложений, которая обеспечивает контейнеризацию, — веб-приложение для контейнеров. служба приложение Azure использует Технология контейнера Docker для размещения встроенных образов и пользовательских образов. В этом руководстве вы создадите образ из кода Python и развернете его в веб-приложении для контейнеров.

    • Веб-приложение для контейнеров использует веб-перехватчик в реестре для получения уведомлений о новых образах. Отправка нового образа в репозиторий активирует Служба приложений для извлечения образа и перезапуска.

  • Реестр контейнеров Azure;

    • Реестр контейнеров Azure позволяет работать с образами Docker и его компонентами в Azure. Он предоставляет реестр, который близок к развертываниям в Azure и обеспечивает контроль доступа, что позволяет использовать группы и разрешения Microsoft Entra.

    • В этом руководстве источник реестра Реестр контейнеров Azure, но вы также можете использовать Docker Hub или частный реестр с незначительными изменениями.

  • Azure Cosmos DB для MongoDB

    • Azure Cosmos DB для MongoDB — это база данных NoSQL, используемая в этом руководстве для хранения данных.

    • Доступ к ресурсу Azure Cosmos DB осуществляется через строка подключения, который передается в качестве переменной среды в контейнерное приложение.

Проверка подлинности

В этом руководстве вы создадите образ Docker (локально или непосредственно в Azure) и развернете его в службе приложение Azure. Служба приложений извлекает образ контейнера из репозитория Реестр контейнеров Azure.

Служба приложений использует управляемое удостоверение для извлечения изображений из Реестр контейнеров Azure. Управляемое удостоверение позволяет предоставлять веб-приложению разрешения, чтобы получить доступ к другим ресурсам Azure без необходимости указывать учетные данные. В частности, в этом руководстве используется управляемое удостоверение, назначенное системой. Управляемое удостоверение настраивается во время установки Служба приложений для использования образа контейнера реестра.

В примере веб-приложения учебника для хранения данных используется MongoDB. Пример кода подключается к Azure Cosmos DB с помощью строка подключения.

Необходимые компоненты

Для работы с этим руководством потребуется следующее:

Пример приложения

Пример приложения Python — это приложение проверки ресторана, которое сохраняет ресторан и просматривает данные в MongoDB. Пример веб-приложения с помощью PostgreSQL см. в статье "Создание и развертывание веб-приложения Flask в Azure с управляемым удостоверением".

В конце руководства вы получите развернутое и запущенное в Azure приложение проверки ресторана, которое выглядит как на снимке экрана ниже.

A screenshot of the sample app created from the Python containerized web app used in the Tutorial - Containerized Python App on Azure.

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