Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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ů.