Compartilhar via


Criar um aplicativo Web Python em contêineres na nuvem

Este artigo faz parte de um tutorial sobre como colocar em contêiner e implantar um aplicativo Web Python no Serviço de Aplicativo do Azure. O Serviço de Aplicativo permite que você execute aplicativos Web em contêineres e implante por meio de recursos de integração contínua/implantação contínua (CI/CD) com o Docker Hub, o Registro de Contêiner do Azure e o Visual Studio Team Services. Nesta parte do tutorial, você aprenderá a criar o aplicativo Web Python em contêineres na nuvem.

Na parte opcional anterior deste tutorial, uma imagem de contêiner foi compilada e executada localmente. Por outro lado, nesta parte do tutorial, você cria (conteineriza) um aplicativo Web Python em uma imagem do Docker diretamente no Registro de Contêiner do Azure. Criar a imagem no Azure normalmente é mais rápido e fácil do que criar localmente e, em seguida, enviar a imagem para um registro. Além disso, a criação na nuvem não exige que o Docker esteja em execução em seu ambiente de desenvolvimento.

Quando a imagem do Docker estiver no Registro de Contêiner do Azure, ela poderá ser implantada no Serviço de Aplicativo do Azure.

O diagrama de serviço mostrado abaixo destaca os componentes abordados neste artigo.

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

1. Criar um Registro de Contêiner do Azure

Se você já tiver um Registro de Contêiner do Azure que possa usar, vá para a próxima etapa. Se não tiver, crie um.

É possível executar os comandos da CLI do Azure no Azure Cloud Shell ou em uma estação de trabalho com a CLI do Azure instalada. Ao executar no Cloud Shell, ignore a Etapa 3.

Etapa 1. Crie um grupo de recursos, se necessário, com o comando az group create . Se você já configurou uma conta do Azure Cosmos DB para MongoDB na parte 2. Crie e teste o contêiner localmente deste tutorial, defina RESOURCE_GROUP_NAME para o nome do grupo de recursos usado para essa conta e vá para a Etapa 2.

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

az group create -n $RESOURCE_GROUP_NAME -l $LOCATION

LOCATION deve ser um valor de local do Azure. Escolha uma localização próxima de você. Você pode listar valores de local do Azure com o seguinte comando: az account list-locations -o table.

Etapa 2. Crie um registro de contêiner com o comando az acr create .

REGISTRY_NAME='<your Azure Container Registry name>'

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

REGISTRY_NAME devem ser exclusivos no Azure e conter de 5 a 50 caracteres alfanuméricos.

Na saída JSON do comando, procure o valor, que é o nome do Registro totalmente qualificado (todas em minúsculas) e que deve incluir o loginServer nome do Registro especificado.

Etapa 3. Se você estiver executando a CLI do Azure localmente, faça logon no Registro usando o comando az acr login .

az acr login -n $REGISTRY_NAME

O comando adiciona "azurecr.io" ao nome para criar o nome do Registro totalmente qualificado. Se for bem-sucedido, você verá a mensagem "Login bem-sucedido".

Observação

O az acr login comando não é necessário ou suportado no Cloud Shell.

2. Criar uma imagem no Registro de Contêiner do Azure

Você pode criar a imagem de contêiner diretamente no Azure de algumas maneiras. Primeiro, você pode usar o Azure Cloud Shell, que cria a imagem sem usar seu ambiente local. Você também pode criar a imagem de contêiner no Azure a partir de seu ambiente local usando o VS Code ou a CLI do Azure. A criação da imagem na nuvem não exige que o Docker esteja em execução em seu ambiente local. Se precisar, você pode seguir as instruções em Clone ou baixar o aplicativo de exemplo na parte 2 deste tutorial para obter o aplicativo web Flask ou Django de exemplo.

Os comandos da CLI do Azure podem ser executados em uma estação de trabalho com a CLI do Azure instalada ou no Azure Cloud Shell. Ao executar no Cloud Shell, ignore a Etapa 1.

Etapa 1. Se você estiver executando a CLI do Azure localmente, faça logon no Registro se ainda não tiver feito isso com o comando az acr login .

az acr login -n $REGISTRY_NAME

Se você estiver acessando o Registro a partir de uma assinatura diferente daquela em que o Registro foi criado, use a --suffix opção.

Observação

O az acr login comando não é necessário ou suportado no Cloud Shell.

Etapa 2. Crie a imagem com o comando az acr build .

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

Neste comando:

  • O ponto (".") no final do comando indica o local do código-fonte a ser compilado. Se você não estiver executando esse comando no diretório raiz do aplicativo de exemplo, especifique o caminho para o código.

    Em vez de um caminho para o código em seu ambiente, você pode, opcionalmente, especificar um caminho para o repositório GitHub de exemplo: https://github.com/Azure-Samples/msdocs-python-django-container-web-app ou https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.

  • Se você deixar de fora a -t opção (igual a --image), o comando enfileirará uma compilação de contexto local sem enviá-la para o registro. Construir sem empurrar pode ser útil para verificar se a imagem é construída.

Etapa 3. Confirme se a imagem do contêiner foi criada com o comando az acr repository list .

az acr repository list -n $REGISTRY_NAME

Próxima etapa