Compartilhar via


Visão geral: aplicativo Web Python em contêineres no Azure com MongoDB

Este tutorial mostra como colocar em contêiner um aplicativo Web Python e implantá-lo no Azure. O aplicativo web de contêiner único é hospedado no Serviço de Aplicativo do Azure e usa MongoDB para Azure Cosmos DB para armazenar dados. O Serviço de Aplicativo Aplicativo Web para Contêineres permite que você se concentre na composição dos seus contêineres sem se preocupar em gerenciar e manter um orquestrador de contêiner subjacente. Ao criar aplicativos Web, o Serviço de Aplicativo do Azure é uma boa opção para executar suas primeiras etapas com contêineres. Para obter mais informações sobre como usar contêineres no Azure, consulte Comparando as opções de contêiner do Azure.

Neste tutorial você irá:

  • Compile e execute um contêiner docker localmente. Esta etapa é 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 de contêiner do Docker.

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

Visão geral do serviço

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

Uma captura de tela dos serviços usados no Tutorial – Aplicativo Python em contêineres no Azure.

Os componentes compatíveis com este tutorial e mostrados no diagrama acima são:

  • Serviço de Aplicativo Azure

    • A funcionalidade subjacente do Serviço de Aplicativo que permite a contêinerizaçã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 do código Python e a implantará no Aplicativo Web para Contêineres.

    • O Aplicativo Web para Contêineres usa um webhook no registro para ser notificado sobre novas imagens. O envio de uma nova imagem para o repositório aciona o App Service para baixar a imagem e reiniciar.

  • registro de contêiner do Azure

    • O Registro de Contêiner do Azure permite que você trabalhe com imagens do Docker e seus componentes no Azure. Ele fornece um registro próximo às suas implantações no Azure e que fornece controle sobre o acesso, possibilitando o uso de seus grupos e permissões do Microsoft Entra.

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

  • 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 é por meio de uma cadeia de conexão, que é passada como uma variável de ambiente para o aplicativo em contêineres.

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 de contêiner de um repositório do Registro de Contêiner do Azure.

O Serviço de Aplicativo usa a identidade gerenciada para obter imagens do Azure Container Registry. 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 pelo sistema. A identidade gerenciada é configurada durante a configuração do App Service para usar uma imagem de contêiner do registro.

O aplicativo Web de exemplo do 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 avaliação de restaurantes que armazena os dados de restaurantes e avaliações no MongoDB. Para obter um exemplo de um aplicativo Web usando o 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.

Uma captura de tela do aplicativo de exemplo criado a partir do aplicativo Web em contêiner do Python usado no Tutorial – Aplicativo Python em contêineres no Azure.

Próxima etapa