Поделиться через


Создание контейнерного веб-приложения Python в облаке

Эта статья является частью руководства по контейнеризации и развертыванию веб-приложения Python в службе приложение Azure. Служба приложений позволяет запускать контейнерные веб-приложения и развертывать их с помощью возможностей непрерывной интеграции и непрерывного развертывания (CI/CD) с помощью Docker Hub, Реестр контейнеров Azure и Visual Studio Team Services. В этой части руководства вы узнаете, как создать контейнерное веб-приложение Python в облаке.

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

После Реестр контейнеров Azure образа Docker его можно развернуть в службе приложение Azure.

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

A screenshot of the services using in the Tutorial - Containerized Python App on Azure with the build-in-cloud path highlighted.

1. Создание Реестр контейнеров Azure

Если у вас уже есть Реестр контейнеров Azure вы можете использовать, перейдите к следующему шагу. Если вы этого не сделали, создайте его.

Команды Azure CLI могут выполняться в Azure Cloud Shell или на рабочей станции с установленным интерфейсом Azure CLI. При запуске в Cloud Shell пропустите шаг 3.

Шаг 1. При необходимости создайте группу ресурсов с помощью команды az group create . Если вы уже настроили учетную запись Azure Cosmos DB для MongoDB в части 2. Создайте и проверьте контейнер локально в этом руководстве, задайте RESOURCE_GROUP_NAME имя группы ресурсов, используемой для этой учетной записи, и перейдите к шагу 2.

RESOURCE_GROUP_NAME='msdocs-web-app-rg'
LOCATION='eastus'

az group create -n $RESOURCE_GROUP_NAME -l $LOCATION

LOCATION должен быть значением расположения Azure. Выберите ближайшее к вам расположение. Вы можете вывести список значений расположения Azure с помощью следующей команды. az account list-locations -o table

Шаг 2. Создайте реестр контейнеров с помощью команды az acr create .

REGISTRY_NAME='<your Azure Container Registry name>'

az acr create -g $RESOURCE_GROUP_NAME -n $REGISTRY_NAME --sku Basic

REGISTRY_NAME должен быть уникальным в Azure и содержать 5–50 буквенно-цифровых символов.

В выходных данных JSON команды найдите loginServer значение, которое является полным именем реестра (все строчные регистры) и которое должно содержать указанное имя реестра.

Шаг 3. Если вы используете Azure CLI локально, войдите в реестр с помощью команды az acr login .

az acr login -n $REGISTRY_NAME

Команда добавляет "azurecr.io" в имя, чтобы создать полное имя реестра. В случае успешного выполнения появится сообщение "Имя входа выполнено".

Примечание.

Команда az acr login не требуется или поддерживается в Cloud Shell.

2. Создание образа в Реестр контейнеров Azure

Образ контейнера можно создать непосредственно в Azure несколькими способами. Во-первых, вы можете использовать Azure Cloud Shell, который создает образ без использования локальной среды вообще. Вы также можете создать образ контейнера в Azure из локальной среды с помощью VS Code или Azure CLI. Создание образа в облаке не требует запуска Docker в локальной среде. Если вам нужно, следуйте инструкциям в Clone или скачайте пример приложения в части 2 этого руководства, чтобы получить пример веб-приложения Flask или Django.

Команды Azure CLI можно запускать на рабочей станции с установленным Azure CLI или в Azure Cloud Shell. При запуске в Cloud Shell пропустите шаг 1.

Шаг 1. Если вы используете Azure CLI локально, войдите в реестр, если вы еще не сделали этого с помощью команды az acr login .

az acr login -n $REGISTRY_NAME

Если вы обращаетесь к реестру из подписки, отличной от подписки, в которой был создан реестр, используйте --suffix этот параметр.

Примечание.

Команда az acr login не требуется или поддерживается в Cloud Shell.

Шаг 2. Создайте образ с помощью команды az acr build .

az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .

В этой команде:

  • Точка (".") в конце команды указывает расположение исходного кода для сборки. Если эта команда не выполняется в корневом каталоге примера приложения, укажите путь к коду.

    Вместо пути к коду в вашей среде можно указать путь к примеру репозитория GitHub: https://github.com/Azure-Samples/msdocs-python-django-container-web-app или https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.

  • Если вы оставьте -t параметр (так же, как --image) команде выполняется сборка локального контекста без отправки в реестр. Создание без отправки может оказаться полезным для проверка сборки образа.

Шаг 3. Убедитесь, что образ контейнера создан с помощью команды az acr repository list .

az acr repository list -n $REGISTRY_NAME

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