Compartilhar via


Configurar seu ambiente local para implantar aplicativos Web Python no Azure

Este artigo mostra como configurar seu ambiente local para desenvolver aplicativos Python web e implantá-los em Azure. Seu aplicativo Web pode ser puro Python ou usar uma das estruturas web comuns baseadas em Python, como Django, Flask ou FastAPI.

Você pode implantar Python aplicativos Web desenvolvidos 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 de código, contêiner do Docker ou aplicativo Web estático. Se você implantar a partir do código, poderá implantar usando Visual Studio Code, o Azure CLI, um repositório Git local ou ações de GitHub. Se você implantar em um Contêiner do Docker, poderá fazer isso do Azure Container Registry, Docker Hub ou qualquer registro privado.

Antes de continuar com este artigo, examine o Conseje seu ambiente de desenvolvimento para obter diretrizes sobre como configurar seu ambiente de desenvolvimento para Python e Azure. As seções a seguir discutem o preparo e a configuração específicos para o desenvolvimento de aplicativos Web em Python.

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

Trabalhando com Visual Studio Code

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

Dica

Instale a extensão Python. Para obter uma visão geral de como trabalhar com Python no VS Code, consulte Getting Started with Python in VS Code.

No VS Code, você trabalha com recursos de Azure por meio de extensões de código VS. Você pode instalar extensões na exibição Extensões ou usando a combinação de teclas Ctrl+Shift+X. Para Python aplicativos Web, é provável que você trabalhe com uma ou mais das seguintes extensões:

  • A extensão Azure App Service permite que você interaja com Azure App Service de dentro de Visual Studio Code. O Serviço de Aplicativo fornece hospedagem totalmente gerenciada para aplicativos Web, incluindo sites e APIs Web.

  • A extensão Azure Static Web Apps permite criar Azure Static Web Apps diretamente do VS Code. Static Web Apps é sem servidor e uma boa opção para hospedagem de conteúdo estático.

  • Se você planeja trabalhar com contêineres, instale:

    • A extensão do Docker para construir e trabalhar com contêineres localmente. Por exemplo, você pode executar um aplicativo Web Python em contêineres em Azure App Service usando Web Apps para Contêineres.

    • A extensão Azure Container Apps para criar e implantar aplicativos em contêineres diretamente de Visual Studio Code.

  • Outras extensões incluem as extensões Azure Storage, Azure Databases e Azure Resources. Você sempre pode adicionar essas e outras extensões conforme necessário.

As extensões em Visual Studio Code são acessíveis como você espera em uma interface IDE típica. Você pode usar o suporte a palavras-chave avançadas usando a paleta de comandos do 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 de Azure. A captura de tela a seguir mostra algumas das ações do Serviço de Aplicativo.

Uma captura de tela da paleta de comandos do Visual Studio Code para App Service.

Trabalhando com contêineres de desenvolvimento no Visual Studio Code

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

Embora haja opções populares disponíveis em Python para gerenciar ambientes como virtualenv ou venv, a extensão Visual Studio Code Contêiner de Desenvolvimento (com base na especificação open Dev Container) permite que você use um contêiner Docker como um ambiente em contêiner 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 do sistema, configurações de shell ou usar outras linguagens inteiramente, poderá usar um Contêiner de Desenvolvimento para configurar explicitamente todas essas partes do projeto que podem estar fora de um ambiente de Python básico.

Por exemplo, um desenvolvedor pode configurar um único Contêiner de Desenvolvimento para incluir tudo o que for necessário para funcionar 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 React e assim por diante. Além disso, o contêiner conteria o código do projeto, o Python runtime e todas as dependências do projeto Python com as versões corretas. Por fim, o contêiner pode especificar Visual Studio Code extensões a serem instaladas para que toda a equipe tenha as mesmas ferramentas disponíveis. Portanto, quando um novo desenvolvedor se junta à equipe, todo o ambiente, incluindo ferramentas, dependências e dados, está pronto para ser clonado em seu computador local e pode começar a trabalhar imediatamente.

Consulte o Desenvolvimento dentro de um contêiner.

Trabalhando com Visual Studio 2022

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

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

  • Para obter as etapas de instalação, consulte Instalar suporte ao Python no Visual Studio que orienta você pelas etapas de instalação do workload do Python no Visual Studio 2022.

  • Para obter o fluxo de trabalho geral do uso de Python para desenvolvimento na Web, consulte Quickstart: Criar seu primeiro aplicativo Web Python usando Visual Studio. Este artigo é útil para entender como criar um aplicativo Web Python do zero (mas não inclui a implantação para Azure).

  • Para usar o Visual Studio 2022 para gerenciar recursos Azure e implantar em Azure, consulte Azure Development com Visual Studio. Embora grande parte da documentação aqui mencione especificamente .NET, as ferramentas para gerenciar Azure recursos e implantar em Azure funciona da mesma forma, independentemente da linguagem de programação.

  • Quando não há nenhuma ferramenta interna disponível no Visual Studio 2022 para uma determinada tarefa de gerenciamento ou implantação de Azure, você sempre pode usar comandos Azure CLI.

Trabalhando com outros IDEs

Se você estiver trabalhando em outro IDE que não tenha suporte explícito para Azure, use o Azure CLI para gerenciar Azure recursos. Na captura de tela a seguir, um aplicativo Web Flask simples está aberto no IDE do PyCharm . Você pode implantar o aplicativo Web em um Azure App Service usando o comando az webapp up. Na captura de tela, o comando da CLI é executado no emulador de terminal inserido do PyCharm. Se o IDE não tiver um emulador inserido, você poderá usar qualquer terminal e o mesmo comando. O Azure CLI deve ser instalado em seu computador e ser acessível em ambos os casos.

A captura de tela do IDE do PyCharm com um comando Azure CLI implantando um aplicativo Web.

comandos Azure CLI

Quando você trabalha localmente com aplicativos Web usando os comandos Azure CLI, normalmente usa os seguintes comandos:

Comando Descrição
az webapp Gerencia aplicativos Web. Inclui os subcomandos create e up para criar um aplicativo Web ou para criar e fazer o deploy a partir de um workspace local, respectivamente.
az container app Gerencia Azure Container Apps.
az staticwebapp Gerencia Azure Static Web Apps.
az group Gerencia grupos de recursos e implantações de modelo. Use o subcomando create para criar um grupo de recursos para colocar seus recursos de Azure.
az appservice Gerencia planos do Serviço de Aplicações.
az config Gerencia a configuração do Azure CLI. Para salvar pressionamentos de teclas, você pode definir um local ou grupo de recursos padrão que outros comandos usam automaticamente.

Este é um exemplo de comando da Azure CLI para criar um aplicativo web e os recursos associados, e implantá-lo no Azure em um único comando usando az webapp up. Execute o comando no diretório raiz do aplicativo Web.

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

Para obter mais informações sobre este exemplo, consulte Quickstart: Implantar um aplicativo Web Python (Django ou Flask) para Azure App Service.

Tenha em mente que, para alguns dos fluxos de trabalho do Azure, você também pode usar o Azure CLI no Azure Cloud Shell. Azure Cloud Shell é um shell interativo, autenticado e acessível pelo navegador para gerenciar recursos de Azure.

Pacotes principais do Azure SDK

Em seus aplicativos Web Python, você pode consultar programaticamente os serviços Azure usando o Azure SDK para Python. A seção Use o SDK (bibliotecas de Azure) para Python discute este SDK extensivamente. Nesta seção, você aprenderá sobre alguns dos principais pacotes do SDK que você usa no desenvolvimento da Web. Você também vê um exemplo que segue as práticas recomendadas para autenticar seu código com recursos Azure.

A tabela a seguir lista alguns dos pacotes comumente usados no desenvolvimento de aplicativos Web. Você pode instalar pacotes em seu ambiente virtual diretamente usando pip. Ou, coloque o nome do índice de pacotes do Python (PyPI) no arquivo requirements.txt.

Documentos do SDK Instalar índice de pacote Python
Azure Identity pip install azure-identity azure-identity
Blobs do Azure Storage 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 seu aplicativo Web se autentique com Microsoft Entra ID. Para autenticação no código do aplicativo web, use o DefaultAzureCredential no pacote azure-identity. O exemplo a seguir mostra como acessar Azure Storage. O padrão é semelhante para outros recursos de 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 em locais predefinidos por informações da conta, como as variáveis de ambiente ou o login do Azure CLI. Para obter informações detalhadas sobre a lógica DefaultAzureCredential, consulte Como autenticar aplicativos Python em serviços Azure usando o Azure SDK para Python.

estruturas da Web baseadas em Python

No desenvolvimento de aplicativos Web em Python, você geralmente trabalha com frameworks da Web baseados em Python. Essas estruturas fornecem funcionalidade, 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 reinventar a roda para uma funcionalidade comum.

Três estruturas da Web Python comuns são Django, Flask e FastAPI. Você pode usar essas e outras estruturas da Web com Azure.

O exemplo a seguir mostra como você pode começar rapidamente com essas estruturas localmente. Ao executar esses comandos, você acaba com um aplicativo, embora um simples que você possa implantar no Azure. Execute esses comandos dentro de um ambiente virtual.

Etapa 1: Baixe as estruturas usando pip.

pip install Django

Etapa 2: Crie um aplicativo hello world.

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

django-admin startproject hello_world

Etapa 3: Execute o código localmente.

O Django usa o WSGI para executar o aplicativo.

python hello_world\manage.py runserver

Etapa 4: Navegue pelo aplicativo hello world.

http://127.0.0.1:8000/

Neste ponto, adicione um arquivo requirements.txt . Em seguida, implante o aplicativo web no Azure, ou conteinerize-o usando o Docker e depois implante-o.

Próximas etapas