Část 5: Hlavní závislosti aplikací, příkazy importu a proměnné prostředí

Předchozí část: Hlavní implementace aplikace

Tato část zkontroluje knihovny Pythonu importované hlavní aplikací a proměnné prostředí, na které závisí. Když nasadíte aplikaci do Azure, zadejte tyto proměnné prostředí prostřednictvím nastavení aplikace v Azure App Service.

Závislosti a deklarace importu

Aplikace spoléhá na následující knihovny:

  • Flask – definování webového rozhraní API
  • requests – standardní klient HTTP Pythonu pro provádění odchozích volání rozhraní API
  • azure.identity – pro zpracování ověřování založeného na tokenech Microsoft Entra ID
  • azure.keyvault.secrets – bezpečné načtení tajných kódů ze služby Azure Key Vault
  • azure.storage.queue – komunikace se službou Azure Queue Storage

Tyto závislosti zahrňte do souboru requirements.txt aplikace. Nainstalujte je během nasazení nebo místní instalace.

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

Když nasadíte aplikaci do služby Azure App Service, Azure tyto požadavky automaticky nainstaluje na hostitelský server. Při lokálním spuštění je nainstalujte ve svém prostředí pomocí pip install -r requirements.txt.

Soubor kódu začíná požadovanými příkazy importu pro části knihoven použitých v kódu:

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

Proměnné prostředí

Kód aplikace závisí na těchto čtyřech proměnných prostředí:

Proměnná Hodnota
THIRD_PARTY_API_ENDPOINT Adresa URL rozhraní API třetí strany, například https://msdocs-example-api.azurewebsites.net/api/RandomNumber popsaná v části 3.
KEY_VAULT_URL Adresa URL služby Azure Key Vault, ve které jste uložili přístupový klíč pro rozhraní API třetí strany.
THIRD_PARTY_API_SECRET_NAME Název tajného kódu ve službě Key Vault, který obsahuje přístupový klíč pro rozhraní API třetí strany.
STORAGE_QUEUE_URL Adresa URL fronty úložiště Azure, kterou nakonfigurujete v Azure, například https://msdocsexamplemainapp.queue.core.windows.net/code-requests (viz část 4). Protože je název fronty zahrnutý na konci adresy URL, neuvidíte název nikde v kódu.

Způsob nastavení těchto proměnných závisí na tom, kde kód běží:

  • Při místním spuštění kódu vytvořte tyto proměnné v libovolném příkazovém prostředí, které používáte (například PowerShell, Bash nebo CMD). (Pokud nasadíte aplikaci na virtuální počítač, vytvoříte podobné proměnné na straně serveru.) Můžete také použít knihovnu, jako je python-dotenv, která čte páry klíč-hodnota ze souboru .env a nastaví je jako proměnné prostředí.

  • Když nasadíte kód do Azure App Service, jak je znázorněno v tomto návodu, nemáte přístup k samotnému serveru. Místo toho definujte nastavení aplikace se stejnými názvy v konfiguraci služby App Service. Tato nastavení automaticky zpřístupňují aplikaci jako proměnné prostředí.

Skripty zřizování vytvoří tato nastavení pomocí příkazu Azure CLI . az webapp config appsettings set Nastavte všechny čtyři proměnné jedním příkazem.

Pokud chcete vytvořit nastavení prostřednictvím webu Azure Portal, přečtěte si téma Konfigurace aplikace App Service na webu Azure Portal.

Při místním spuštění kódu musíte také zadat proměnné prostředí, které obsahují informace o vašem místním service principal. DefaultAzureCredential tyto hodnoty vyhledá. Při nasazení do služby App Service nemusíte tyto hodnoty nastavovat, protože k ověření se používá spravovaná identita přiřazená systémem aplikace.

Proměnná Hodnota
AZURE_TENANT_ID ID tenantu adresáře Microsoft Entra.
AZURE_CLIENT_ID ID klienta (aplikace) pro registraci aplikace v tenantovi.
AZURE_CLIENT_SECRET Tajný klíč klienta, který jste vygenerovali pro registraci aplikace.

Další informace najdete v tématu ověřování aplikací Pythonu ve službách Azure během místního vývoje pomocí instančních objektů.