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:
- Guia de início rápido: crie um aplicativo Web Python (Django ou Flask) no Serviço de Aplicativo do Azure.
- Tutorial: Implantar um aplicativo Web Python (Django ou Flask) com PostgreSQL no Azure
- Criar e implantar um aplicativo Web do Flask no Azure com uma identidade gerenciada atribuída pelo sistema
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:
A extensão do 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 da Web.
A extensão de 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 não têm servidor e são 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 criar e trabalhar com contêineres localmente. 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 Aplicativos de Contêiner do Azure para criar e implantar aplicativos em contêiner diretamente do Visual Studio Code.
Há outras extensões, como o Armazenamento do Azure, os Bancos de Dados do Azure e as extensões de 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 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.
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++.
Em geral, consulte Visual Studio | 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 ao 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 da Web, consulte Guia de 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 os 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 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.
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 pip
o . 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.
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.
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.