Compartilhar via


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

Parte anterior: Implementação principal do aplicativo

Esta seção analisa as bibliotecas python importadas pelo aplicativo principal e as variáveis de ambiente das quais ela depende. Quando o aplicativo é implantado no Azure, essas variáveis de ambiente são fornecidas por meio de Configurações de Aplicativo no Serviço de Aplicativo do Azure.

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

O aplicativo depende das seguintes bibliotecas:

  • Flask – para definir a API Web
  • solicitações – o cliente HTTP do Python padrão para fazer chamadas à 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

Essas dependências são incluídas no arquivo requirements.txt do aplicativo e são instaladas durante a implantação ou instalaçã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 em 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 dessas 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 descrito na Parte 3.
KEY_VAULT_URL A URL do Azure Key Vault na qual você armazenou a chave de acesso para a API de terceiros.
THIRD_PARTY_API_SECRET_NAME O nome do segredo no Key Vault que contém a chave de acesso para a API de terceiros.
STORAGE_QUEUE_URL A URL de uma Fila de Armazenamento do Azure configurada no Azure, como https://msdocsexamplemainapp.queue.core.windows.net/code-requests (consulte a Parte 4). Como o nome da fila está incluído no final da URL, você não vê o nome em nenhum lugar no código.

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

  • Ao executar o código localmente, você cria essas variáveis em qualquer shell de comando que estiver usando (como PowerShell, Bash ou CMD). (Se você implantar o aplicativo em uma máquina virtual, criará variáveis semelhantes do lado do servidor.) Você também pode usar uma biblioteca como python-dotenv, que lê pares chave-valor de um arquivo .env e os define como variáveis de ambiente

  • Quando o código é implantado no Serviço de Aplicativo do Azure, conforme mostrado neste passo a passo, você não tem acesso ao próprio servidor. Em vez disso, você define as configurações do aplicativo com os mesmos nomes na configuração do Serviço de Aplicativo. Essas configurações são expostas automaticamente ao aplicativo como variáveis de ambiente.

Os scripts de provisionamento criam essas configurações usando o comando da CLI do Azure. az webapp config appsettings set Todas as quatro variáveis são definidas 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 contêm informações sobre sua entidade de serviço local. DefaultAzureCredential procura por esses valores. Quando implantado no Serviço de Aplicativo, você não precisa definir esses valores, pois a identidade gerenciada atribuída pelo sistema do aplicativo é usada para autenticar.

Variável Valor
AZURE_TENANT_ID A ID do locatário do Microsoft Entra (diretório).
AZURE_CLIENT_ID A ID do cliente (aplicativo) de um Registro de Aplicativo no locatário.
AZURE_CLIENT_SECRET Um segredo do cliente que foi gerado para o Registro de Aplicativo.

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