Configurar seu ambiente local para implantar aplicativos Web Python no Azure

Este artigo orienta você durante a configuração de seu ambiente local para desenvolver aplicativos Web Python e implantá-los no Azure. Seu aplicativo Web pode ser Python puro ou usar uma das estruturas web comuns baseadas em Python, como Django, Flask ou FastAPI.

Os aplicativos Web Python desenvolvidos localmente podem ser implantados em serviços como o Serviço de Aplicativo do Azure, os Aplicativos de Contêiner do Azure ou os Aplicativos Web Estáticos do Azure. Há muitas opções para implantação. Por exemplo, para a implantação do Serviço de Aplicativo, você pode optar por implantar a partir do código, de um contêiner do Docker ou de um Aplicativo Web Estático. Se você implantar a partir do código, poderá implantar com o Visual Studio Code, com a CLI do Azure, de um repositório Git local ou com ações do GitHub. Se você implantar em um Contêiner do Docker, poderá fazê-lo no Registro de Contêiner do Azure, no Hub do Docker ou em qualquer registro privado.

Antes de continuar com este artigo, sugerimos que você revise o Configurar seu ambiente de desenvolvimento para obter orientação sobre como configurar seu ambiente de desenvolvimento para Python e Azure. Abaixo, discutiremos a instalação e a configuração específicas para o desenvolvimento de aplicativos Web Python.

Depois de configurar seu ambiente local para o desenvolvimento de aplicativos Web Python, você estará pronto para abordar estes artigos:

Trabalhando com o Visual Studio Code

O ambiente de desenvolvimento integrado (IDE) do Visual Studio Code é uma maneira fácil de desenvolver aplicativos Web Python e trabalhar com recursos do Azure que os aplicativos Web usam.

Dica

Certifique-se de ter a extensão Python instalada. Para obter uma visão geral do trabalho com Python no VS Code, consulte Introdução ao Python no VS Code.

No VS Code, você trabalha com recursos do Azure por meio de extensões do VS Code. Você pode instalar extensões a partir do Modo de Exibição de Extensões ou da combinação de teclas Ctrl+Shift+X. Para aplicativos Web Python, você provavelmente trabalhará com uma ou mais das seguintes extensões:

As extensões no Visual Studio Code são acessíveis como você esperaria em uma interface IDE típica e com suporte avançado a palavras-chave usando a paleta de comandos VS Code. Para acessar a paleta de comandos, use a combinação de teclas Ctrl+Shift+P. A paleta de comandos é uma boa maneira de ver todas as ações possíveis que você pode executar em um recurso do Azure. A captura de tela abaixo mostra algumas das ações do Serviço de Aplicativo.

A screenshot of the Visual Studio Code command palette for App Service.

Trabalhando com contêineres de desenvolvimento no Visual Studio Code

Os desenvolvedores Python geralmente dependem de ambientes virtuais para criar um ambiente isolado e autônomo para um projeto específico. Os ambientes virtuais permitem que os desenvolvedores gerenciem dependências, pacotes e versões do Python separadamente para cada projeto, evitando conflitos entre projetos diferentes que podem exigir versões de pacotes diferentes.

Embora existam opções populares disponíveis no Python para gerenciar ambientes como ou venv, a extensão Visual Studio Code Dev Container (com base na especificação Dev Container aberta) permite que você use um contêiner do Docker como virtualenv um ambiente conteinerizado completo. Ele permite que os desenvolvedores definam uma cadeia de ferramentas consistente e facilmente reproduzível com todas as ferramentas, dependências e extensões necessárias pré-configuradas. Isso significa que, se você tiver requisitos de sistema, configurações de shell ou usar outras linguagens inteiramente, poderá usar um Contêiner de Desenvolvimento para configurar explicitamente todas as partes do seu projeto que podem viver fora de um ambiente Python básico.

Por exemplo, um desenvolvedor pode configurar um único Dev Container para incluir tudo o que é necessário para trabalhar em um projeto, incluindo um servidor de banco de dados PostgreSQL junto com o banco de dados do projeto e dados de exemplo, um servidor Redis, Nginx, código front-end, bibliotecas de cliente como o React e assim por diante. Além disso, o contêiner conteria o código do projeto, o tempo de execução do Python e todas as dependências do projeto Python com as versões corretas. Finalmente, o contêiner pode especificar extensões de código do Visual Studio a serem instaladas para que toda a equipe tenha as mesmas ferramentas disponíveis. Assim, quando um novo desenvolvedor se junta à equipe, todo o ambiente, incluindo ferramentas, dependências e dados, está pronto para ser clonado em sua máquina local e eles podem começar a trabalhar imediatamente.

Consulte Desenvolvendo dentro de um contêiner.

Trabalhando com o Visual Studio 2022

O Visual Studio 2022 é um ambiente de desenvolvimento integrado (IDE) completo com suporte para desenvolvimento de aplicativos Python e muitas ferramentas e extensões internas para acessar e implantar nos recursos do Azure. Embora a maioria da documentação para criar aplicativos Web Python no Azure se concentre no uso do Visual Studio Code, o Visual Studio 2022 é uma ótima opção se você já o tiver instalado, estiver confortável em usá-lo e estiver usando-o para projetos .NET ou C++.

Trabalhando com outros IDEs

Se você estiver trabalhando em outro IDE que não tenha suporte explícito para o Azure, poderá usar a CLI do Azure para gerenciar recursos do Azure. Na captura de tela abaixo, um aplicativo web Flask simples está aberto no PyCharm IDE. O aplicativo Web pode ser implantado em um Serviço de Aplicativo do Azure usando o az webapp up comando. Na captura de tela, o comando CLI é executado no emulador de terminal incorporado PyCharm. Se o IDE não tiver um emulador incorporado, você poderá usar qualquer terminal e o mesmo comando. A CLI do Azure deve ser instalada em seu computador e estar acessível em ambos os casos.

A screenshot of the PyCharm IDE with an Azure CLI command deploying a web app.

Comandos da CLI do Azure

Ao trabalhar localmente com aplicativos Web usando os comandos da CLI do Azure, você normalmente trabalhará com os seguintes comandos:

Comando Descrição
az webapp Gerencia aplicativos Web. Inclui os subcomandos create para criar um aplicativo Web e o up para criar e implantar a partir de um espaço de trabalho local
az container app Gerencia aplicativos de contêiner do Azure.
az staticwebapp Gerencia Aplicativos Web Estáticos do Azure.
az group Gerencia grupos de recursos e implantações de modelos. Use o subcomando create to a resource group para colocar seus recursos do Azure.
az appservice Gerencia planos do Serviço de Aplicativo.
az config Configuração gerenciada da CLI do Azure. Para salvar pressionamentos de teclas, você pode definir um local padrão ou grupo de recursos que outros comandos usam automaticamente.

Veja um exemplo de comando da CLI do Azure para criar um aplicativo Web e recursos associados e implantá-lo no Azure em um comando usando az webapp up. Execute o comando no diretório raiz do seu aplicativo Web.

az webapp up \
    --runtime PYTHON:3.9 \
    --sku B1 \
    --logs

Para obter mais informações sobre este exemplo, consulte Guia de início rápido: implantar um aplicativo Web Python (Django ou Flask) no Serviço de Aplicativo do Azure.

Lembre-se de que, para alguns de seus fluxos de trabalho do Azure, você também pode usar a CLI do Azure de um Shell de Nuvem do Azure. O Azure Cloud Shell é um shell interativo, autenticado e acessível por navegador para gerenciar recursos do Azure.

Pacotes de chaves do SDK do Azure

Em seus aplicativos Web Python, você pode consultar programaticamente os serviços do Azure usando o SDK do Azure para Python. Esse SDK é discutido extensivamente na seção Usar as bibliotecas do Azure (SDK) para Python. Nesta seção, mencionaremos brevemente alguns pacotes-chave do SDK que você usará no desenvolvimento web. Além disso, mostraremos um exemplo sobre as práticas recomendadas para autenticar seu código com recursos do Azure.

Abaixo estão alguns dos pacotes comumente usados no desenvolvimento de aplicativos web. Você pode instalar pacotes em seu ambiente virtual diretamente com pipo . Ou coloque o nome do índice de pacotes Python (Pypi) em seu arquivo .txt requisitos.

Documentos do SDK Instalar Índice de pacotes Python
Identidade do Azure pip install azure-identity azure-identity
Blobs de armazenamento do Azure pip install azure-storage-blob azure-storage-blob
Azure Cosmos DB pip install azure-cosmos azure-cosmos
Segredos do Cofre de Chaves do Azure pip install azure-keyvault-secrets azure-keyvault-secrets

O pacote azure-identity permite que seu aplicativo Web se autentique com o Microsoft Entra ID. Para autenticação no código do aplicativo Web, é recomendável usar o DefaultAzureCredential no azure-identity pacote. Aqui está um exemplo de como acessar o Armazenamento do Azure. O padrão é semelhante para outros recursos do Azure.

from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient

azure_credential = DefaultAzureCredential()
blob_service_client = BlobServiceClient(
    account_url=account_url,
    credential=azure_credential)

O DefaultAzureCredential procurará em locais predefinidos informações de conta, por exemplo, em variáveis de ambiente ou a partir da entrada da CLI do Azure. Para obter informações detalhadas sobre a DefaultAzureCredential lógica, consulte Autenticar aplicativos Python para serviços do Azure usando o SDK do Azure para Python.

Frameworks web baseados em Python

No desenvolvimento de aplicativos Web Python, você geralmente trabalha com estruturas Web baseadas em Python. Essas estruturas fornecem funcionalidades como modelos de página, gerenciamento de sessão, acesso ao banco de dados e fácil acesso a objetos de solicitação e resposta HTTP. As estruturas permitem que você evite a necessidade de ter que reinventar a roda para uma funcionalidade comum.

Três frameworks web Python comuns são Django, Flask ou FastAPI. Essas e outras estruturas da Web podem ser usadas com o Azure.

Abaixo está um exemplo de como você pode começar rapidamente com essas estruturas localmente. Executando esses comandos, você acabará com um aplicativo, embora simples, que possa ser implantado no Azure. Execute esses comandos dentro de um ambiente virtual.

Passo 1: Baixe os frameworks com pip.

pip install Django

Etapa 2: Crie um aplicativo hello world.

Crie um projeto de exemplo usando o comando django-admin startproject . O projeto inclui um arquivo manage.py que é o ponto de entrada para executar o aplicativo.

django-admin startproject hello_world

Etapa 3: Execute o código localmente.

Django usa WSGI para executar o aplicativo.

python hello_world\manage.py runserver

Passo 4: Navegue pelo aplicativo hello world.

http://127.0.0.1:8000/

Neste ponto, adicione um arquivo .txt requisitos e, em seguida, você pode implantar o aplicativo Web no Azure ou conteinerizá-lo com o Docker e, em seguida, implantá-lo.

Próximas etapas