Compartilhar via


Configurar seu ambiente local para implantar aplicativos Web Python no Azure

Este artigo explica como configurar seu ambiente local para desenvolver aplicativos Web do 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, Flaskou FastAPI.

Os aplicativos Web python desenvolvidos localmente podem ser implantados em serviços como do Serviço de Aplicativo do Azure, aplicativos de contêiner do Azureou aplicativos Web estáticos do Azure. 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ê fizer a implantação a partir do código, poderá implantar com o Visual Studio Code, com a CLI do Azure, a partir de um repositório Git local ou com GitHub Actions. Se você implantar em um Contêiner do Docker, poderá fazer isso 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ê examine o Configurar seu ambiente de desenvolvimento para obter orientação sobre como configurar seu ambiente de desenvolvimento para Python e Azure. Abaixo, discutiremos a configuração e o ajuste específicos para o desenvolvimento de aplicativos Web em Python.

Depois de obter a configuração do ambiente local para o desenvolvimento do aplicativo Web Python, você estará pronto para abordar estes artigos:

Trabalhando com o Visual Studio Code

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

Dica

Verifique se você tem a extensão python instalada. Para obter uma visão geral de como trabalhar 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 do Extensions View ou da combinação de teclas Ctrl+Shift+X. Para aplicativos Web Python, você provavelmente trabalhará com uma ou mais das seguintes extensões:

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

  • A extensão Aplicativos Web Estáticos do Azure permite que você crie aplicativos Web estáticos do Azure diretamente do VS Code. Os Aplicativos Web Estáticos são 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 Docker para construir e trabalhar localmente com contêineres. Por exemplo, você pode executar um aplicativo Web Python em contêineres no Serviço de Aplicativo do Azure usando Aplicativos Web para Contêineres.

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

  • Há outras extensões, como o Armazenamento do Azure , Bancos de Dados do Azure e Recursos do Azure . Você sempre pode adicionar essas e outras extensões conforme necessário.

As extensões no Visual Studio Code são acessíveis como você esperaria em uma interface IDE típica e com suporte de palavra-chave avançada 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.

Uma captura de tela da paleta de comandos do Visual Studio Code para o Serviço de Aplicativo.

Trabalhando com contêineres de desenvolvimento no Visual Studio Code

Os desenvolvedores do Python 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 do Python separadamente para cada projeto, evitando conflitos entre projetos diferentes que podem exigir versões de pacote diferentes.

Embora existam opções populares disponíveis no Python para gerenciar ambientes como virtualenv ou venv, a extensão Contêiner de Desenvolvimento do Visual Studio Code (com base na especificação de Contêiner de Desenvolvimento aberto ) permite que você use um contêiner Docker como um ambiente em contêiner totalmente funcional. 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 básico do Python.

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 runtime do Python e todas as dependências de projeto do Python com as versões corretas. Por fim, o contêiner pode especificar extensões do Visual Studio Code 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.

Confira Desenvolvendo dentro de um contêiner.

Trabalhando com o Visual Studio 2022

Visual Studio 2022 é um IDE (ambiente de desenvolvimento integrado) completo com suporte para desenvolvimento de aplicativos 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 em usar o Visual Studio Code, o 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 | A documentação do Python para toda a documentação relacionada ao uso do Python no Visual Studio 2022.

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

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

  • Para usar o Visual Studio 2022 para gerenciar recursos do Azure e implantar no Azure, consulte Desenvolvimento do Azure com o Visual Studio. Embora grande parte da documentação aqui mencione especificamente o .NET, as ferramentas para gerenciar recursos do Azure e implantar no Azure funcionam 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 do Azure, você sempre pode usar comandos da CLI do Azure.

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 é aberto no IDE do PyCharm. O aplicativo Web pode ser implantado em um Serviço de Aplicativo do Azure 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. A CLI do Azure deve ser instalada em seu computador e ser acessível em ambos os casos.

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

Comandos da CLI do Azure

Ao trabalhar localmente com aplicativos Web usando os comandos CLI do Azure, normalmente você trabalhará com 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 implantar a partir de um espaço de trabalho local, respectivamente.
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 modelo. Use o subcomando criar para criar um grupo de recursos para colocar seus recursos do Azure.
az appservice Gerencia planos do Serviço de Aplicações.
az config Gerencia a configuração da CLI do Azure. Para salvar pressionamentos de teclas, você pode definir um local ou grupo de recursos padrão que outros comandos usam automaticamente.

Aqui está 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 aplicativo Web.

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

Para obter mais informações sobre este exemplo, consulte 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 a partir de um Azure Cloud Shell. O Azure Cloud Shell é um shell interativo, autenticado e acessível pelo navegador para gerenciar recursos do Azure.

Pacotes de chaves do SDK do Azure

Em seus aplicativos Web Python, você pode se referir programaticamente aos serviços do Azure usando o SDK do Azure para Python. Este SDK é amplamente discutido na seção Usar as bibliotecas do Azure (SDK) para Python. Nesta seção, mencionaremos brevemente alguns dos principais pacotes do SDK que você usará no desenvolvimento da 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 pip. Ou coloque o nome do Pypi (índice de pacote do Python) no arquivo requirements.txt.

Documentos do SDK Instalar Índice de pacote do 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 Azure Key Vault pip install azure-keyvault-secrets azure-keyvault-secrets

O pacote azure-identity permite que o aplicativo Web se autentique com o Microsoft Entra ID. Para autenticação no código do aplicativo Web, é recomendável que usar o DefaultAzureCredential no pacote azure-identity. 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á informações de conta em locais predefinidos, por exemplo, em variáveis de ambiente ou a partir do login da CLI do Azure. Para obter informações detalhadas sobre a lógica de DefaultAzureCredential, consulte Autenticar aplicativos Python nos serviços do Azure usando o SDK do Azure para Python.

Estruturas da Web baseadas em Python

No desenvolvimento de aplicativos Web python, você geralmente trabalha com estruturas da Web baseadas 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 evitar a necessidade de você ter que reinventar a roda para uma funcionalidade comum.

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

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

Etapa 1: Baixar as estruturas com pip.

pip install Django

Etapa 2: Criar 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: Executar o código localmente.

O Django usa o WSGI para executar o aplicativo.

python hello_world\manage.py runserver

Etapa 4: Navegar no aplicativo Hello World.

http://127.0.0.1:8000/

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

Próximas etapas