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.
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