Compartilhar via


Visão geral: implantar um aplicativo Web Python em aplicativos de contêiner do Azure

Este tutorial mostra como colocar um aplicativo Web Python em contêiner e implantá-lo nos Aplicativos de Contêiner do Azure. Um aplicativo Web de exemplo será conteinerizado e a imagem do Docker armazenada no Registro de Contêiner do Azure. Os Aplicativos de Contêiner do Azure estão configurados para extrair a imagem do Docker do Registro de Contêiner e criar um contêiner. O aplicativo de exemplo se conecta a um Banco de Dados do Azure para PostgreSQL para demonstrar a comunicação entre Aplicativos de Contêiner e outros recursos do Azure.

Há várias opções para criar e implantar aplicativos Web Python nativos da nuvem e em contêineres no Azure. Este tutorial aborda os Aplicativos de Contêiner do Azure. Os aplicativos de contêiner são bons para executar contêineres de uso geral, especialmente para aplicativos que abrangem muitos microsserviços implantados em contêineres. Neste tutorial, você criará um contêiner. Para implantar um aplicativo Web Python como um contêiner no Serviço de Aplicativo do Azure, consulte Aplicativo Web Python em contêiner no Serviço de Aplicativo.

Neste tutorial você irá:

Após este tutorial, você será configurado para Integração Contínua (CI) e Implantação Contínua (CD) de um aplicativo Web Python no Azure.

Visão geral do serviço

O diagrama de serviço que dá suporte a este tutorial mostra como seu ambiente local, repositórios do GitHub e serviços do Azure são usados no tutorial.

A screenshot of the environments and services used in the Tutorial - Deploy a Python App on Azure Container Apps.

Os componentes que suportam este tutorial e mostrados no diagrama acima são:

  • Aplicativos de Contêiner do Azure

    • Os Aplicativos de Contêiner do Azure permitem que você execute microsserviços e aplicativos conteinerizados em uma plataforma sem servidor. Uma plataforma sem servidor significa que você aproveita os benefícios de executar contêineres com configuração mínima. Com os Aplicativos de Contêiner do Azure, seus aplicativos podem ser dimensionados dinamicamente com base em características como tráfego HTTP, processamento controlado por eventos ou carga de CPU ou memória.
    • Os Aplicativos de Contêiner extraem imagens do Docker do Registro de Contêiner do Azure. As alterações nas imagens de contêiner disparam uma atualização para o contêiner implantado. Você também pode configurar as Ações do GitHub para disparar atualizações.
  • Registro de Contêiner do Azure

    • O Registro de Contêiner do Azure permite que você trabalhe com imagens do Docker no Azure. Como o Registro de Contêiner está próximo de suas implantações no Azure, você tem controle sobre o acesso, tornando possível usar seus grupos e permissões do Microsoft Entra para controlar o acesso a imagens do Docker.
    • Neste tutorial, a origem do Registro é o Registro de Contêiner do Azure, mas você também pode usar o Hub do Docker ou um registro privado com pequenas modificações.
  • Banco de Dados do Azure para PostgreSQL

    • O código de exemplo armazena dados do aplicativo em um banco de dados PostgreSQL.
    • O aplicativo de contêiner se conecta ao PostgreSQL por meio de variáveis de ambiente configuradas explicitamente ou com o Azure Service Connector.
  • GitHub

    • O código de exemplo para este tutorial está em um repositório do GitHub que você bifurcará e clonará localmente. Para configurar um fluxo de trabalho de CI/CD com as Ações do GitHub, você precisará de uma conta do GitHub.
    • Você ainda pode acompanhar este tutorial sem uma conta do GitHub, trabalhando localmente ou no Azure Cloud Shell para criar a imagem de contêiner a partir do repositório de código de exemplo.

Revisões e CI/CD

Para fazer alterações de código e enviá-las por push para um contêiner, crie uma nova imagem do Docker com a alteração. Em seguida, envie a imagem para o Registro de contêiner e crie uma nova revisão do aplicativo de contêiner.

Para automatizar esse processo, uma etapa opcional no tutorial mostra como criar um pipeline de integração contínua e entrega contínua (CI/CD) com as Ações do GitHub. O pipeline cria e implanta automaticamente seu código no Aplicativo de Contêiner sempre que uma nova confirmação é enviada por push para o repositório do GitHub.

Autenticação e segurança

Neste tutorial, você criará uma imagem de contêiner do Docker diretamente no Azure e a implantará nos Aplicativos de Contêiner do Azure. Os Aplicativos de Contêiner são executados no contexto de um ambiente, que é suportado por uma Rede Virtual do Azure (VNet). As redes virtuais são um bloco de construção fundamental para sua rede privada no Azure. Os Aplicativos de Contêiner permitem que você exponha seu aplicativo de contêiner à Web pública habilitando a entrada.

Para configurar a integração contínua e a entrega contínua (CI/CD), você autorizará os Aplicativos de Contêiner do Azure como um Aplicativo OAuth para sua conta do GitHub. Como um Aplicativo OAuth, os Aplicativos de Contêiner gravam um arquivo de fluxo de trabalho de Ações do GitHub em seu repositório com informações sobre recursos e trabalhos do Azure para atualizá-los. O fluxo de trabalho atualiza os recursos do Azure usando credenciais de uma entidade de serviço do Microsoft Entra (ou existente) com acesso baseado em função para Aplicativos de Contêiner e nome de usuário e senha para o Registro de Contêiner do Azure. As credenciais são armazenadas com segurança no repositório do GitHub.

Finalmente, o aplicativo Web de exemplo tutorial armazena dados em um banco de dados PostgreSQL. O código de exemplo se conecta ao PostgreSQL por meio de uma cadeia de conexão. Durante a configuração do Aplicativo de Contêiner, o tutorial orienta você pela configuração de variáveis de ambiente que contêm informações de conexão. Você também pode usar um Conector de Serviço do Azure para fazer a mesma coisa.

Pré-requisitos

Para concluir este tutorial, você precisará de:

  • Uma conta do Azure onde você pode criar:

    • Registro de Contêiner do Azure
    • Ambiente de Aplicativos de Contêiner do Azure
    • Banco de Dados do Azure para PostgreSQL
  • Código do Visual Studio ou CLI do Azure, dependendo da ferramenta que você usará

    • Para o Visual Studio Code, você precisará da extensão Aplicativos de Contêiner.
    • Você também pode usar a CLI do Azure por meio do Azure Cloud Shell.
  • Pacotes Python:

Aplicativo de exemplo

O aplicativo de exemplo Python é um aplicativo de revisão de restaurante que salva dados de restaurante e revisão no PostgreSQL. No final do tutorial, você terá um aplicativo de revisão de restaurante implantado e em execução nos Aplicativos de Contêiner do Azure que se parece com a captura de tela abaixo.

A screenshot of the sample app created from the Python containerized web app used in the Tutorial - Containerized Python App on Azure.

Próxima etapa