Parte 5: Principais dependências do aplicativo, instruções de importação e variáveis de ambiente

Parte anterior: Implementação do aplicativo principal

Esta seção analisa as bibliotecas Python importadas pelo aplicativo principal e as variáveis de ambiente das quais ele depende. Quando implementar a aplicação no Azure, forneça estas variáveis de ambiente através das Definições da Aplicação no Serviço de Aplicações do Azure.

Dependências e declarações de importação

O aplicativo conta com as seguintes bibliotecas:

  • Flask – para definir a API web
  • solicitações – o cliente HTTP Python padrão para fazer chamadas de API de saída
  • azure.identity – para lidar com a autenticação baseada em token do Microsoft Entra ID
  • azure.keyvault.secrets – para recuperar segredos com segurança do Azure Key Vault
  • azure.storage.queue – para interagir com o Armazenamento de Filas do Azure

Inclua estas dependências no ficheiro derequirements.txt da aplicação. Instale-os durante a implementação ou a configuração local.

flask
requests
azure.identity
azure.keyvault.secrets
azure.storage.queue

Quando você implanta o aplicativo no Serviço de Aplicativo do Azure, o Azure instala automaticamente esses requisitos no servidor host. Ao executar localmente, instale-os no seu ambiente com pip install -r requirements.txt.

O arquivo de código começa com as instruções de importação necessárias para as partes das bibliotecas usadas no código:

from flask import Flask, request, jsonify
import requests, random, string, os
from datetime import datetime
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
from azure.storage.queue import QueueClient

Variáveis de ambiente

O código do aplicativo depende destas quatro variáveis de ambiente:

Variável Valor
THIRD_PARTY_API_ENDPOINT A URL da API de terceiros, como https://msdocs-example-api.azurewebsites.net/api/RandomNumber descrita em Parte 3.
KEY_VAULT_URL A URL do Cofre da Chave do Azure na qual você armazenou a chave de acesso para a API de terceiros.
THIRD_PARTY_API_SECRET_NAME O nome do segredo armazenado no Cofre de Chaves que contém a chave de acesso para a API de terceiros.
STORAGE_QUEUE_URL A URL de uma Fila de Armazenamento do Azure que você configura no Azure, como https://msdocsexamplemainapp.queue.core.windows.net/code-requests (consulte Parte 4). Como o nome da fila está incluído no final da URL, você não vê o nome em nenhum lugar do código.

Como você define essas variáveis depende de onde o código está sendo executado:

  • Ao executar o código localmente, cria estas variáveis dentro do shell de comandos que estás a usar (como PowerShell, Bash ou CMD). (Se implementares a aplicação numa máquina virtual, crias variáveis semelhantes do lado do servidor.) Também podes usar uma biblioteca como python-dotenv, que lê pares chave-valor de um ficheiro .env e define-os como variáveis de ambiente.

  • Quando implementas o código no Serviço de Aplicações do Azure, como mostrado neste walkthrough, não tens acesso ao próprio servidor. Em vez disso, defina as definições da aplicação com os mesmos nomes na configuração do Serviço de Aplicações. Estas definições expõem automaticamente a aplicação como variáveis de ambiente.

Os scripts de provisionamento criam estas definições usando o comando CLI do Azure, az webapp config appsettings set. Defina as quatro variáveis com um único comando.

Para criar configurações por meio do portal do Azure, consulte Configurar um aplicativo do Serviço de Aplicativo no portal do Azure.

Ao executar o código localmente, você também precisa especificar variáveis de ambiente que contenham informações sobre sua entidade de serviço local. DefaultAzureCredential procura esses valores. Quando implantado no Serviço de Aplicativo, você não precisa definir esses valores, pois a identidade gerenciada atribuída ao sistema do aplicativo é usada para autenticar.

Variável Valor
AZURE_TENANT_ID O ID do inquilino (diretório) do Microsoft Entra.
AZURE_CLIENT_ID O ID do cliente (aplicativo) de um Registro de Aplicativo no locatário.
AZURE_CLIENT_SECRET Um segredo de cliente que geraste para o Registo da App.

Para obter mais informações, consulte Autenticar aplicativos Python em serviços do Azure durante o desenvolvimento local usando entidades de serviço.