Introdução ao Python no Azure

Use este documento como uma lista de verificação e um guia quando começar a desenvolver aplicativos Python que serão hospedados na nuvem ou utilizarão serviços de nuvem. Se você seguir os links e instruções neste documento, você:

  • Tenha uma compreensão fundamental do que é a nuvem e como você projeta seu aplicativo com a nuvem em mente.
  • Configure seu ambiente de desenvolvimento local, incluindo as ferramentas e bibliotecas necessárias para criar aplicativos baseados em nuvem.
  • Compreenda o fluxo de trabalho ao desenvolver aplicativos baseados em nuvem.

Fase 1: Aprender conceitos

Se você é novo no desenvolvimento de aplicativos para a nuvem, esta pequena série de artigos com vídeos irá ajudá-lo a se atualizar rapidamente.

Depois de entender os conceitos básicos do desenvolvimento de aplicativos para a nuvem, convém configurar seu ambiente de desenvolvimento e seguir um Guia de início rápido ou tutorial para criar seu primeiro aplicativo.

Fase 2: Configurar seu ambiente Python local para desenvolvimento do Azure

Para desenvolver aplicativos Python usando o Azure, primeiro você deseja configurar seu ambiente de desenvolvimento local. A configuração inclui a criação de uma conta do Azure, a instalação de ferramentas para o desenvolvimento do Azure e a conexão dessas ferramentas à sua conta do Azure.

O desenvolvimento no Azure requer Python 3.8 ou superior. Para verificar a versão do Python em sua estação de trabalho, em uma janela do console, digite o comando python3 --version para macOS/Linux ou py --version Windows.

Criar uma Conta do Azure

Para desenvolver aplicativos Python com o Azure, você precisa de uma conta do Azure. Sua conta do Azure são as credenciais que você usa para entrar no Azure e o que você usa para criar recursos do Azure.

Se estiver a utilizar o Azure no trabalho, fale com o administrador na nuvem da sua empresa para utilizar as suas credenciais para iniciar sessão no Azure.

Caso contrário, pode criar uma conta do Azure gratuitamente e receber 12 meses de serviços populares gratuitamente e um crédito de $200 para explorar o Azure durante 30 dias.

Utilizar o portal do Azure

Depois de ter suas credenciais, você pode entrar no portal do Azure em https://portal.azure.com. O portal do Azure normalmente é a maneira mais fácil de começar a usar o Azure, especialmente se você for novo no Azure e no desenvolvimento em nuvem. No portal do Azure, você pode executar várias tarefas de gerenciamento, como criar e excluir recursos.

Se você já tem experiência com o Azure e o desenvolvimento em nuvem, provavelmente começará a usar ferramentas como o Visual Studio Code e a CLI do Azure. Os artigos no centro de desenvolvedores Python mostram como trabalhar com o portal do Azure, o Visual Studio Code e a CLI do Azure.

Utilizar o Visual Studio Code

Você pode usar qualquer editor ou IDE para escrever código Python ao desenvolver para o Azure. No entanto, convém considerar o uso do Visual Studio Code para desenvolvimento do Azure e Python. O Visual Studio Code fornece muitas extensões e personalizações para o Azure e o Python, que facilitam o ciclo de desenvolvimento e a implantação de um ambiente local para o Azure.

Para desenvolvimento Python usando Visual Studio Code, instale:

  • Extensão Python. Esta extensão inclui IntelliSense (Pylance), Linting, Debugging (multi-threaded, remoto), Jupyter Notebooks, formatação de código, refatoração, testes de unidade e muito mais.

  • Pacote de extensão Ferramentas do Azure. O pacote de extensões contém extensões para trabalhar com o Serviço de Aplicativo do Azure, Azure Functions, Armazenamento do Azure, Azure Cosmos DB e Máquinas Virtuais do Azure em um pacote conveniente. As extensões do Azure facilitam a descoberta e a interação com o Azure.

Para instalar extensões do Visual Studio Code:

  1. Pressione Ctrl+Shift+X para abrir a janela Extensões .
  2. Procure a extensão Ferramentas do Azure.
  3. Selecione o botão Instalar .

Screenshot of the Visual Studio Code showing extensions panel searching for the Azure Tools extension pack.

Para saber mais sobre como instalar extensões no Visual Studio Code, consulte o documento Extension Marketplace no site Visual Studio Code.

Depois de instalar a extensão Ferramentas do Azure, entre com sua conta do Azure. No painel esquerdo, você verá um ícone do Azure. Selecione este ícone e um painel de controle para os serviços do Azure será exibido. Escolha Entrar no Azure... para concluir o processo de autenticação.

Screenshot of the Visual Studio Code showing how to sign-in the Azure tools to Azure.

Nota

Se vir o erro "Não é possível encontrar a subscrição com nome [ID da subscrição]", poderá ser porque está atrás de um proxy e não consegue aceder à API do Azure. Configure HTTP_PROXY e HTTPS_PROXY ambiente variáveis com suas informações de proxy em seu terminal:

# Windows
set HTTPS_PROXY=https://username:password@proxy:8080
set HTTP_PROXY=http://username:password@proxy:8080
# macOS/Linux
export HTTPS_PROXY=https://username:password@proxy:8080
export HTTP_PROXY=http://username:password@proxy:8080

Utilizar a CLI do Azure

Além do portal do Azure e do Visual Studio Code, o Azure também oferece a ferramenta de linha de comando da CLI do Azure para criar e gerenciar recursos do Azure. A CLI do Azure oferece os benefícios de eficiência, repetibilidade e a capacidade de criar scripts para tarefas recorrentes. Na prática, a maioria dos desenvolvedores usa o portal do Azure e a CLI do Azure.

Depois de instalar a CLI do Azure, entre na sua conta do Azure a partir da CLI do Azure digitando o comando az login em uma janela de terminal em sua estação de trabalho.

az login

A CLI do Azure abrirá seu navegador padrão para concluir o processo de entrada.

Configurar ambiente virtual Python

Ao criar aplicativos Python para o Azure, é recomendável criar um ambiente virtual para cada aplicativo. Um ambiente virtual é um diretório autônomo para uma versão específica do Python mais os outros pacotes necessários para esse aplicativo.

Para criar um ambiente virtual, siga estas etapas.

  1. Abra um terminal ou prompt de comando.

  2. Crie uma pasta para o seu projeto.

  3. Crie o ambiente virtual:

    # py -3 uses the global python interpreter. You can also use python3 -m venv .venv.
    py -3 -m venv .venv
    

    Este comando executa o módulo Python venv e cria um ambiente virtual em uma pasta ".venv". Normalmente, os arquivos .gitignore têm uma entrada ".venv" para que o ambiente virtual não faça check-in com seus check-ins de código.

  4. Ative o ambiente virtual:

    .venv\Scripts\activate
    

    Nota

    Se você estiver usando o shell de comando do Windows, ative o ambiente virtual com .venv\Scripts\activateo . Se você estiver usando o Git Bash no Visual Studio Code no Windows, use o comando source .venv/Scripts/activate .

Depois de ativar esse ambiente (o que o Visual Studio Code faz automaticamente), a execução pip install instala uma biblioteca somente nesse ambiente. O código Python em execução em um ambiente virtual usa as versões específicas do pacote instaladas nesse ambiente virtual. O uso de diferentes ambientes virtuais permite que diferentes aplicativos usem versões diferentes de um pacote, o que às vezes é necessário. Para saber mais sobre ambientes virtuais, consulte Ambientes virtuais e pacotes nos documentos do Python.

Por exemplo, se seus requisitos estiverem em um arquivo .txt requisitos, dentro do ambiente virtual ativado, você poderá instalá-los com:

pip install -r requirements.txt

Fase 3: Compreender o fluxo de trabalho de desenvolvimento do Azure

Artigo anterior: provisionamento, acesso e gerenciamento de recursos

Agora que você entende o modelo de serviços e recursos do Azure, pode entender o fluxo geral de desenvolvimento de aplicativos em nuvem com o Azure: provisionamento, código, teste, implantação e gerenciamento.

Passo Ferramentas primárias Atividades
Aprovisionar o CLI do Azure, portal do Azure, extensões VS Code Azure Tools, Cloud Shell, scripts Python usando bibliotecas de gerenciamento do SDK do Azure Criar grupos de recursos e criar recursos nesses grupos; configurar recursos para estarem prontos para uso a partir do código do aplicativo e/ou prontos para receber código Python em implantações.
Código Editor de código (como Visual Studio Code e PyCharm), bibliotecas de cliente do SDK do Azure, documentação de referência Escreva código Python usando as bibliotecas de cliente do SDK do Azure para interagir com recursos provisionados.
Teste Python runtime, depurador Execute código Python localmente em recursos de nuvem ativos (normalmente recursos de desenvolvimento ou teste em vez de recursos de produção). O código em si ainda não está hospedado no Azure, o que ajuda você a depurar e iterar rapidamente.
Implementar VS Code, CLI do Azure, Ações do GitHub, Pipelines do Azure Depois que o código tiver sido testado localmente, implante-o em um serviço de hospedagem do Azure apropriado onde o próprio código possa ser executado na nuvem. O código implantado normalmente é executado em recursos de preparação ou produção.
Gerir CLI do Azure, portal do Azure, VS Code, scripts Python, Azure Monitor Monitore o desempenho e a capacidade de resposta do aplicativo, faça ajustes no ambiente de produção, migre as melhorias de volta para o ambiente de desenvolvimento para a próxima rodada de provisionamento e desenvolvimento.

Etapa 1: provisionar e configurar recursos

Conforme descrito no artigo anterior desta série, a primeira etapa no desenvolvimento de qualquer aplicativo é provisionar e configurar os recursos que compõem o ambiente de destino para seu aplicativo.

O provisionamento começa criando um grupo de recursos em uma região adequada do Azure. Você pode criar um grupo de recursos por meio do portal do Azure, do VS Code com extensões das Ferramentas do Azure, da CLI do Azure ou de um script personalizado que usa as bibliotecas de gerenciamento do SDK do Azure (ou API REST).

Dentro desse grupo de recursos, você provisiona e configura os recursos individuais de que precisa, novamente usando o portal, o VS Code, a CLI ou o SDK do Azure. (Mais uma vez, reveja o Guia do desenvolvedor do Azure para obter uma visão geral dos tipos de recursos disponíveis.)

A configuração inclui a definição de políticas de acesso que controlam quais identidades (entidades de serviço e/ou IDs de aplicativo) podem acessar esses recursos. As políticas de acesso são gerenciadas por meio do RBAC (Controle de Acesso Baseado em Função) do Azure, alguns serviços também têm controles de acesso mais específicos. Como um desenvolvedor de nuvem que trabalha com o Azure, certifique-se de se familiarizar com o RBAC do Azure porque você o usa com praticamente qualquer recurso que tenha preocupações de segurança.

Para a maioria dos cenários de aplicativo, você normalmente cria scripts de provisionamento com a CLI do Azure e/ou código Python usando as bibliotecas de gerenciamento do SDK do Azure. Esses scripts descrevem a totalidade das necessidades de recursos do seu aplicativo (essencialmente definindo o computador na nuvem personalizado no qual você está implantando o aplicativo). Um script permite que você recrie facilmente o mesmo conjunto de recursos em diferentes ambientes, como desenvolvimento, teste, preparação e produção. Ao automatizar, você pode evitar executar manualmente muitas etapas repetidas no portal do Azure ou no VS Code. Esses scripts também facilitam o provisionamento de um ambiente em uma região diferente ou o uso de grupos de recursos diferentes. Se você também mantiver esses scripts em repositórios de controle do código-fonte, também terá auditoria completa e histórico de alterações.

Etapa 2: escrever o código do aplicativo para usar recursos

Depois de provisionar os recursos necessários para seu aplicativo, você escreve o código do aplicativo para trabalhar com os aspetos de tempo de execução desses recursos.

Por exemplo, na etapa de provisionamento, você pode ter criado uma conta de armazenamento do Azure, criado um contêiner de blob dentro dessa conta e definido políticas de acesso para o aplicativo nesse contêiner. Esse processo de provisionamento é demonstrado em Exemplo - Provisionar o Armazenamento do Azure. A partir do seu código, você pode autenticar com essa conta de armazenamento e, em seguida, criar, atualizar ou excluir blobs dentro desse contêiner. Esse processo de tempo de execução é demonstrado em Exemplo - Usar o Armazenamento do Azure. Da mesma forma, você pode ter provisionado um banco de dados com um esquema e permissões apropriadas (como demonstrado em Exemplo - Provisionar um banco de dados), para que o código do aplicativo possa se conectar ao banco de dados e executar as consultas habituais create-read-update-delete.

O código do aplicativo normalmente usa variáveis de ambiente para identificar os nomes e URLs dos recursos a serem usados. As variáveis de ambiente permitem alternar facilmente entre ambientes de nuvem (desenvolvimento, teste, preparação e produção) sem alterações no código. Os vários serviços do Azure que hospedam o código do aplicativo fornecem um meio de definir as variáveis necessárias. Por exemplo, no Serviço de Aplicativo do Azure (para hospedar aplicativos Web) e no Azure Functions (computação sem servidor para o Azure), você define as configurações do aplicativo por meio do portal do Azure, VS Code ou CLI do Azure, que aparecem para seu código como variáveis de ambiente.

Como desenvolvedor Python, você provavelmente escreverá seu código de aplicativo em Python usando as bibliotecas de cliente do SDK do Azure para Python. Dito isto, qualquer parte independente de uma aplicação na nuvem pode ser escrita em qualquer idioma suportado. Se você estiver trabalhando em uma equipe usando várias linguagens de programação, é possível que algumas partes do aplicativo usem Python, alguns JavaScript, alguns Java e outros C#.

O código do aplicativo pode usar as bibliotecas de gerenciamento do SDK do Azure para executar operações de provisionamento e gerenciamento conforme necessário. Os scripts de provisionamento, da mesma forma, podem usar as bibliotecas de cliente SDK para inicializar recursos com dados específicos ou executar tarefas de limpeza em recursos de nuvem, mesmo quando esses scripts são executados localmente.

Etapa 3: testar e depurar o código do aplicativo localmente

Os desenvolvedores normalmente gostam de testar o código do aplicativo em suas estações de trabalho locais antes de implantar esse código na nuvem. Testar o código do aplicativo localmente significa que você normalmente está acessando outros recursos que já provisionou na nuvem, como armazenamento, bancos de dados e assim por diante. A diferença é que você ainda não está executando o próprio código do aplicativo em um serviço de nuvem.

Ao executar o código localmente, você também pode aproveitar ao máximo os recursos de depuração oferecidos por ferramentas como o Visual Studio Code e gerenciar seu código em um repositório de controle do código-fonte.

Você não precisa modificar seu código para testes locais: o Azure oferece suporte total ao desenvolvimento e depuração locais usando o mesmo código que você implanta na nuvem. As variáveis de ambiente são novamente a chave: na nuvem, seu código pode acessar as configurações do recurso de hospedagem como variáveis de ambiente. Quando você cria essas mesmas variáveis de ambiente localmente, o mesmo código é executado sem modificação. Esse padrão funciona para credenciais de autenticação, URLs de recursos, cadeias de conexão e qualquer número de outras configurações, facilitando o uso de recursos em um ambiente de desenvolvimento ao executar código localmente e recursos de produção depois que o código é implantado na nuvem.

Etapa 4: Implantar o código do aplicativo no Azure

Depois de testar seu código localmente, você estará pronto para implantar o código no recurso do Azure que provisionou para hospedá-lo. Por exemplo, se você estiver escrevendo um aplicativo Web Django, implantará esse código em uma máquina virtual (onde você fornece seu próprio servidor Web) ou no Serviço de Aplicativo do Azure (que fornece o servidor Web para você). Uma vez implantado, esse código é executado no servidor em vez de em sua máquina local e pode acessar todos os recursos do Azure para os quais está autorizado.

Como observado na seção anterior, em processos de desenvolvimento típicos, você primeiro implanta seu código nos recursos provisionados em um ambiente de desenvolvimento. Após uma rodada de testes, você implanta seu código em recursos em um ambiente de preparação, disponibilizando o aplicativo para sua equipe de teste e talvez visualizando clientes. Quando estiver satisfeito com o desempenho do aplicativo, você poderá implantar o código em seu ambiente de produção. Todas essas implantações também podem ser automatizadas por meio da integração contínua e da implantação contínua usando o Azure Pipelines e as Ações do GitHub.

Seja como for, uma vez que o código é implantado na nuvem, ele realmente se torna um aplicativo em nuvem, executado inteiramente nos computadores servidores nos data centers do Azure.

Etapa 5: gerenciar, monitorar e revisar

Após a implantação, você deseja ter certeza de que o aplicativo está funcionando como deveria, respondendo às solicitações dos clientes e usando os recursos de forma eficiente (e com o menor custo). Você pode gerenciar como o Azure dimensiona automaticamente sua implantação conforme necessário e pode coletar e monitorar dados de desempenho com o portal do Azure, o VS Code, a CLI do Azure ou scripts personalizados escritos com as bibliotecas do SDK do Azure. Em seguida, você pode fazer ajustes em tempo real nos recursos provisionados para otimizar o desempenho, novamente usando qualquer uma das mesmas ferramentas.

O monitoramento fornece informações sobre como você pode reestruturar seu aplicativo na nuvem. Por exemplo, você pode descobrir que certas partes de um aplicativo Web (como um grupo de pontos de extremidade de API) são usadas apenas ocasionalmente em comparação com as partes principais. Em seguida, você pode optar por implantar essas APIs separadamente como Azure Functions sem servidor. Como funções, eles têm seus próprios recursos de computação de suporte que não competem com o aplicativo principal, mas custam apenas centavos por mês. Seu aplicativo principal torna-se mais responsivo a mais clientes sem ter que escalar para um nível de custo mais alto.

Próximos passos

Agora você está familiarizado com a estrutura básica do Azure e o fluxo de desenvolvimento geral: provisionar recursos, escrever e testar código, implantar o código no Azure e, em seguida, monitorar e gerenciar esses recursos.