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

В этой серии учебников показано, как контейнеризировать веб-приложение Python, а затем запустить его локально или развернуть в Службе приложений Azure. Веб-приложение App Service для контейнеров позволяет сосредоточиться на создании контейнеров, не беспокоясь об управлении и обслуживании базового оркестратора контейнеров. При создании веб-приложений Служба приложений Azure является хорошим вариантом для выполнения первых шагов с контейнерами. Это веб-приложение контейнера может использовать локальный экземпляр MongoDB или Azure DocumentDB (с совместимостью MongoDB) для хранения данных. Дополнительные сведения об использовании контейнеров в Azure см. в статье "Сравнение параметров контейнера Azure".

Изучив это руководство, вы:

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

Обзор службы

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

Снимок экрана служб, используемых в руководстве по контейнеризованному приложению Python в Azure.

Среда разработчика

Среда разработчика для этого руководства включает следующие компоненты:

  • локальная система разработки: персональный компьютер, используемый для написания кода, создания и тестирования контейнера Docker.

  • Контейнеризация Docker: Docker используется для упаковки приложения и его зависимостей в переносимый контейнер.

  • Средства разработки: редактор кода и другие необходимые средства для разработки программного обеспечения.

  • Локальный экземпляр MongoDB: локальная база данных MongoDB, используемая для хранения данных во время разработки.

  • Подключение MongoDB: строка подключения, предоставляющая доступ к локальной базе данных MongoDB.

Среда Azure

Компоненты, поддерживающие среду Azure в этом руководстве, включают:

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

    • В Служба приложений Azure веб-приложение для контейнеров использует технологию контейнеров Docker для размещения контейнеров как для встроенных образов, так и для пользовательских образов с помощью Docker.
    • Веб-приложение для контейнеров использует веб-хук в реестре контейнеров Azure (ACR), чтобы получать уведомления о новых образах. При отправке нового образа в реестр уведомление веб-перехватчика активирует службу приложений, чтобы извлечь обновление и перезапустить приложение.
  • реестр контейнеров Azure

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

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

  • Azure DocumentDB (с совместимостью MongoDB)

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

    • Контейнеризованное приложение подключается к ресурсу Azure DocumentDB и получает к нему доступ с помощью строки подключения, которая сохраняется как переменная среды и передаётся приложению.

Аутентификация

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

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

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

Необходимые условия

Чтобы завершить работу с этим руководством, вам потребуется:

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

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

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

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

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