Visão geral: Aplicativo Web Python em contêiner no Azure com MongoDB

Este tutorial mostra como contentorizar uma aplicação Web Python e implementá-la no Azure. O aplicativo Web de contêiner único é hospedado no Serviço de Aplicativo do Azure e usa o MongoDB para Azure Cosmos DB para armazenar dados. O Aplicativo Web para Contêineres do Serviço de Aplicativo permite que você se concentre em compor seus contêineres sem se preocupar em gerenciar e manter um orquestrador de contêineres subjacente. Ao criar aplicativos Web, o Serviço de Aplicativo do Azure é uma boa opção para dar seus primeiros passos com contêineres. Para obter mais informações sobre como usar contêineres no Azure, consulte Comparando opções de contêiner do Azure.

Neste tutorial você irá:

  • Crie e execute um contêiner do Docker localmente. Este passo é opcional.

  • Crie uma imagem de contêiner do Docker diretamente no Azure.

  • Configure um Serviço de Aplicativo para criar um aplicativo Web com base na imagem do contêiner do Docker.

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

Descrição geral do serviço

O diagrama de serviço que dá suporte a este tutorial mostra dois ambientes (ambiente do desenvolvedor e Azure) e os diferentes serviços do Azure usados no tutorial.

A screenshot of the services using in the Tutorial - Containerized Python App on Azure.

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

  • Serviço de Aplicações do Azure

    • A funcionalidade subjacente do Serviço de Aplicativo que permite a conteinerização é o Aplicativo Web para Contêineres. O Serviço de Aplicativo do Azure usa a tecnologia de contêiner do Docker para hospedar imagens internas e imagens personalizadas. Neste tutorial, você criará uma imagem a partir do código Python e a implantará no Web App for Containers.

    • O Web App for Containers usa um webhook no registro para ser notificado de novas imagens. Um envio de uma nova imagem para o repositório aciona o Serviço de Aplicativo para extrair a imagem e reiniciar.

  • Azure Container Registry

    • O Registro de Contêiner do Azure permite que você trabalhe com imagens do Docker e seus componentes no Azure. Ele fornece um registro que está perto de suas implantações no Azure e que lhe dá controle sobre o acesso, tornando possível usar seus grupos e permissões do Microsoft Entra.

    • Neste tutorial, a fonte do Registro é o Registro de Contêiner do Azure, mas você também pode usar o Docker Hub ou um registro privado com pequenas modificações.

  • Azure Cosmos DB para MongoDB

    • O Azure Cosmos DB para MongoDB é um banco de dados NoSQL usado neste tutorial para armazenar dados.

    • O acesso ao recurso do Azure Cosmos DB é feito por meio de uma cadeia de conexão, que é passada como uma variável de ambiente para o aplicativo em contêiner.

Autenticação

Neste tutorial, você criará uma imagem do Docker (local ou diretamente no Azure) e a implantará no Serviço de Aplicativo do Azure. O Serviço de Aplicativo extrai a imagem do contêiner de um repositório do Registro de Contêiner do Azure.

O Serviço de Aplicativo usa identidade gerenciada para extrair imagens do Registro de Contêiner do Azure. A identidade gerenciada permite que você conceda permissões ao aplicativo Web para que ele possa acessar outros recursos do Azure sem a necessidade de especificar credenciais. Especificamente, este tutorial usa uma identidade gerenciada atribuída ao sistema. A identidade gerenciada é configurada durante a configuração do Serviço de Aplicativo para usar uma imagem de contêiner do Registro.

O aplicativo Web de exemplo tutorial usa o MongoDB para armazenar dados. O código de exemplo se conecta ao Azure Cosmos DB por meio de uma cadeia de conexão.

Pré-requisitos

Para concluir este tutorial, você precisará:

Aplicativo de exemplo

O aplicativo de exemplo Python é um aplicativo de revisão de restaurante que salva dados de restaurantes e avaliações no MongoDB. Para obter um exemplo de um aplicativo Web usando PostgreSQL, consulte Criar e implantar um aplicativo Web Flask no Azure com uma identidade gerenciada.

No final do tutorial, você terá um aplicativo de revisão de restaurante implantado e em execução no 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óximo passo