Compartilhar via


Criar um aplicativo Web Python em contêineres na nuvem

Este artigo faz parte de um tutorial sobre como colocar 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 CI/CD (integração contínua/implantação contínua) com o Hub do Docker, 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 deste tutorial, uma imagem de contêiner foi criada e executada localmente. Por outro lado, nesta parte do tutorial, você cria (em contêineres) um aplicativo Web Python em uma imagem do Docker diretamente no Registro de Contêiner do Azure. A criação da imagem no Azure normalmente é mais rápida e fácil do que criar localmente e, em seguida, enviar a imagem por push 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.

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

Este diagrama de serviço realça os componentes abordados neste artigo.

Uma captura de tela dos serviços que usam no Tutorial – Aplicativo Python em contêineres no Azure com o caminho de build na nuvem realçado.

Criar um Registro de Contêiner do Azure

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

Os comandos da CLI do Azure podem ser executados no do 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.

  1. Se necessário, crie um grupo de recursos com o comando az group create. Se você já tiver configurado uma conta do Azure Cosmos DB para MongoDB em parte 2. Compile e teste o contêiner localmente deste tutorial, defina a variável de ambiente RESOURCE_GROUP_NAME como o nome do grupo de recursos usado para essa conta e passe para a próxima etapa.

    RESOURCE_GROUP_NAME='msdocs-web-app-rg'
    LOCATION='eastus'
    
    az group create -n $RESOURCE_GROUP_NAME -l $LOCATION
    

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

  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 deve ser exclusivo no Azure e conter de 5 a 50 caracteres alfanuméricos.

    Na saída JSON do comando, procure o valor loginServer, que é o nome do registro totalmente qualificado (tudo em minúsculas) e deveria incluir o nome do registro especificado por você.

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

    Nota

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

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 do 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, siga as instruções em Clone ou baixe 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 em do Azure Cloud Shell. Ao executar no Cloud Shell, ignore a Etapa 1.

  1. Se você estiver executando a CLI do Azure localmente, entre 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 de uma assinatura diferente daquela em que o registro foi criado, use a opção --suffix.

    Nota

    O comando az acr login não é necessário e não tem suporte no Cloud Shell.

  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.

    • Omitindo a opção -t (igual a --image), o comando enfileira uma construção de contexto local sem enviá-la para o repositório. Construir sem empurrar pode ser útil para verificar se a imagem é construída.

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

    az acr repository list -n $REGISTRY_NAME
    

Próxima etapa