Partilhar via


Configure o seu ambiente local para implementar aplicações web Python no Azure

Este artigo mostra-lhe como configurar o seu ambiente local para desenvolver Python web apps e implementá-las em Azure. A tua aplicação web pode ser pura Python ou usar um dos frameworks web mais comuns baseados em Python, como Django, Flask, ou FastAPI.

Pode implementar Python aplicações web desenvolvidas localmente em serviços como Azure App Service, Azure Container Apps ou Azure Static Web Apps. Há muitas opções para implantação. Por exemplo, para implantação do Serviço de Aplicativo, você pode optar por implantar a partir de código, um contêiner do Docker ou um Aplicativo Web estático. Se implementares a partir de código, podes implementar usando o Visual Studio Code, o Azure CLI, um repositório Git local ou ações do GitHub. Se implementares num Docker Container, podes fazê-lo a partir do Azure Container Registry, Docker Hub ou qualquer registo privado.

Antes de continuar com este artigo, consulte o Configure o seu ambiente de desenvolvimento para orientação sobre como configurar o seu ambiente de desenvolvimento para Python e Azure. As secções seguintes discutem a configuração e configuração específicas para o desenvolvimento de aplicações web em Python.

Depois de configurar o seu ambiente local para desenvolvimento de aplicações web em Python, está pronto para abordar estes artigos:

Trabalhar com Visual Studio Code

O ambiente integrado de desenvolvimento (IDE) Visual Studio Code é uma forma fácil de desenvolver Python aplicações web e trabalhar com Azure recursos que as aplicações web utilizam.

Dica

Certifica-te de que instalas a extensão Python. Para uma visão geral do trabalho com Python no VS Code, veja Getting Started with Python in VS Code.

No VS Code, trabalhas com Azure recursos através das extensões VS Code. Pode instalar extensões a partir da vista Extensões ou usando a combinação de teclas Ctrl+Shift+X. Para aplicações web em Python, é provável que trabalhe com uma ou mais das seguintes extensões:

  • A extensão Azure App Service permite-lhe interagir com Azure App Service a partir de Visual Studio Code. O Serviço de Aplicativo fornece hospedagem totalmente gerenciada para aplicativos da Web, incluindo sites e APIs da Web.

  • A extensão Azure Static Web Apps permite-lhe criar Azure Static Web Apps diretamente a partir do VS Code. Static Web Apps é serverless e uma boa escolha para alojamento de conteúdos estáticos.

  • Se planeia trabalhar com contentores, instale:

    • A extensão Docker para construir e trabalhar com contentores localmente. Por exemplo, pode correr uma aplicação web Python containerizada no Azure App Service usando Web Apps para Containers.

    • A extensão Azure Container Apps para criar e implementar aplicações containerizadas diretamente a partir de Visual Studio Code.

  • Outras extensões incluem as extensões Azure Storage, Azure Bases de Dados e Azure Recursos. Você sempre pode adicionar essas e outras extensões conforme necessário.

As extensões no Visual Studio Code são acessíveis como se espera numa interface típica de IDE. Pode usar suporte a palavras-chave ricas 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 forma de ver todas as ações possíveis que podes tomar num recurso do Azure. A captura de ecrã seguinte mostra algumas das ações do App Service.

Uma captura de ecrã da paleta de comandos Visual Studio Code para App Service.

Trabalhar com Containers de Desenvolvimento no Visual Studio Code

Os programadores Python frequentemente dependem de ambientes virtuais para criar um ambiente isolado e autónomo para um projeto específico. Ambientes virtuais permitem aos programadores gerir dependências, pacotes e versões em Python separadamente para cada projeto, evitando conflitos entre diferentes projetos que possam exigir diferentes versões de pacotes.

Embora existam opções populares disponíveis em Python para gerir ambientes como virtualenv ou venv, a extensão Visual Studio Code Dev Container (baseada na especificação Open Dev Container) permite usar um Docker container como um ambiente completo containerizado. 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. Isto significa que, se tiver requisitos de sistema, configurações de shell ou usar outras linguagens completamente, pode usar um Dev Container para configurar explicitamente todas as partes do seu projeto que possam existir fora de um ambiente Python básico.

Por exemplo, um desenvolvedor pode configurar um único contêiner de desenvolvimento 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 contentor continha o código do projeto, o runtime em Python e todas as dependências do projeto em Python com as versões corretas. Por fim, o contentor pode especificar extensões do Visual Studio Code para serem instaladas para que toda a equipa 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 para sua máquina local e eles podem começar a trabalhar imediatamente.

Veja Desenvolver dentro de um Container.

Trabalhar com o Visual Studio 2022

Visual Studio 2022 é um ambiente integrado de desenvolvimento (IDE) completo com suporte para desenvolvimento de aplicações Python e muitas ferramentas e extensões integradas para aceder e implementar em recursos Azure. Embora a maior parte da documentação para construir aplicações web em Python no Azure se foque no uso do Visual Studio Code, o Visual Studio 2022 é uma ótima opção se já o tiver instalado, se estiver confortável a usá-lo e estiver a usá-lo para projetos .NET ou C++.

  • Em geral, consulte a documentação do Visual Studio e Python para toda a documentação relacionada ao uso do Python no Visual Studio 2022.

  • Para os passos de configuração, veja Instalar suporte do Python no Visual Studio que o guia pelos passos de instalação do workload Python no Visual Studio 2022.

  • Para o fluxo de trabalho geral de utilização de Python para desenvolvimento web, veja Quickstart: Crie a sua primeira aplicação web Python usando Visual Studio. Este artigo é útil para perceber como construir uma aplicação web em Python do zero (mas não inclui a implementação no Azure).

  • Para utilizar Visual Studio 2022 para gerir recursos Azure e implementar para Azure, veja Azure Desenvolvimento com Visual Studio. Embora grande parte da documentação aqui mencione especificamente o .NET, as ferramentas para gerir recursos do Azure e implementar no Azure funcionam da mesma forma independentemente da linguagem de programação.

  • Quando não existe uma ferramenta integrada disponível em Visual Studio de 2022 para uma determinada tarefa de gestão de Azure ou implementação, pode sempre usar comandos Azure CLI.

Trabalhando com outros IDEs

Se estiveres a trabalhar noutro IDE que não tenha suporte explícito para o Azure, usa a CLI do Azure CLI para gerir os recursos do Azure. Na captura de ecrã seguinte, uma simples aplicação web Flask está aberta no IDE PyCharm . Pode implementar a aplicação web para um Azure App Service usando o comando az webapp up. Na captura de tela, o comando CLI é executado dentro do emulador de terminal incorporado PyCharm. Se o teu IDE não tiver um emulador embutido, podes usar qualquer terminal e usar o mesmo comando. O Azure CLI deve estar instalado no seu computador e ser acessível em qualquer dos casos.

Uma captura de ecrã do IDE PyCharm com um comando Azure CLI a implementar uma aplicação web.

Comandos Azure CLI

Quando trabalha localmente com aplicações web usando os comandos Azure CLI, normalmente utiliza os seguintes comandos:

Comando Descrição
AZ WebApp Gerencia aplicativos Web. Inclui os subcomandos criar e subir para criar uma aplicação web ou para criar e implementar a partir de um espaço de trabalho local, respetivamente.
do aplicativo de contêiner AZ Gere Azure Container Apps.
AZ StaticWebApp Gerencia Azure Static Web Apps.
Grupo AZ Gerencia grupos de recursos e implantações de modelos. Usa o subcomando create para criar um grupo de recursos onde colocares os teus recursos Azure.
AZ AppService Gerencia planos do Serviço de Aplicativo.
az config Gerencia a configuração do Azure CLI. Para salvar pressionamentos de teclas, você pode definir um local padrão ou grupo de recursos que outros comandos usam automaticamente.

Aqui está um exemplo Azure CLI comando para criar uma aplicação web e recursos associados, e implementá-los para Azure num só 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 mais informações sobre este exemplo, veja Quickstart: Deploye uma aplicação web Python (Django ou Flask) para Azure App Service.

Lembra-te que, para parte do teu fluxo de trabalho Azure, também podes usar o Azure CLI de um Azure Cloud Shell. O Azure Cloud Shell é um shell interativo, autenticado e acessível ao navegador para gerir recursos do Azure.

Pacotes chave do Azure SDK

Nas suas aplicações web em Python, pode referir-se programaticamente aos serviços do Azure usando o Azure SDK para Python. A secção Usar as Bibliotecas do Azure (SDK) para Python discute este SDK extensivamente. Nesta secção, aprende sobre alguns pacotes-chave do SDK que utiliza no desenvolvimento web. Também vês um exemplo que segue as melhores práticas para autenticar o teu código com recursos do Azure.

A tabela seguinte lista alguns dos pacotes comumente usados no desenvolvimento de aplicações web. Pode instalar pacotes diretamente no seu ambiente virtual usando pip. Ou, coloca o nome do pacote índice do Python (PyPI) no teu ficheiro requirements.txt.

Documentos do SDK Instalar Índice de pacotes em Python
Azure Identidade pip install azure-identity azure-identity
Azure Storage Blobs pip install azure-storage-blob azure-storage-blob
Azure Cosmos DB pip install azure-cosmos Azure-cosmos
Segredos do Azure Key Vault pip install azure-keyvault-secrets Azure-keyvault-secrets

O pacote azure-identity permite que a sua aplicação web se autentique com Microsoft Entra ID. Para a autenticação no código da sua aplicação web, use o DefaultAzureCredential no pacote azure-identity. O exemplo seguinte mostra como aceder ao Azure Storage. 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 procura informações da conta em locais predefinidos, como variáveis de ambiente ou a iniciação de sessão do Azure CLI. Para informações detalhadas sobre a lógica DefaultAzureCredential, veja Autenticar aplicações de Python para Azure serviços usando o Azure SDK para Python.

Frameworks web baseados em Python

Durante o desenvolvimento de aplicações web em Python, você muitas vezes trabalha com frameworks web baseados 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. Os frameworks permitem-lhe evitar reinventar a roda para funcionalidades comuns.

Três frameworks web Python comuns são Django, Flask e FastAPI. Podes usar estes e outros frameworks web com o Azure.

O exemplo seguinte mostra como pode começar rapidamente com estes frameworks localmente. Quando executas estes comandos, acabas com uma aplicação, embora simples, que podes implementar no Azure. Execute estes comandos dentro de um ambiente virtual.

Passo 1: Descarregue os frameworks usando o pip.

pip install Django

Passo 2: Crie uma aplicação Hello World.

Crie um projeto de exemplo usando o comando django-admin startproject . O projeto inclui um ficheiro manage.py que serve como ponto de entrada para a execução da aplicação.

django-admin startproject hello_world

Passo 3: Executa o código localmente.

Django usa WSGI para executar o aplicativo.

python hello_world\manage.py runserver

Passo 4: Navegue pela aplicação hello world.

http://127.0.0.1:8000/

Neste ponto, adiciona um ficheiro requirements.txt. Depois, implementa a aplicação web no Azure ou contentiza-a usando o Docker e implementa-a.

Próximos passos