Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Poprzednia część: główna implementacja aplikacji
Ta sekcja zawiera przegląd bibliotek języka Python zaimportowanych przez główną aplikację i zmiennych środowiskowych, od których zależy. Podczas wdrażania aplikacji w Azure podaj te zmienne środowiskowe za pomocą ustawień aplikacji w Azure App Service.
Zależności i instrukcje importowania
Aplikacja opiera się na następujących bibliotekach:
- Flask — aby zdefiniować internetowy interfejs API
- requests — standardowy klient HTTP języka Python do wykonywania wywołań API
- azure.identity — do obsługi uwierzytelniania opartego na tokenach Microsoft Entra ID
- azure.keyvault.secrets — aby bezpiecznie pobierać tajemnice z usługi Azure Key Vault
- azure.storage.queue — do interakcji z usługą Azure Queue Storage
Uwzględnij te zależności w pliku requirements.txt aplikacji. Zainstaluj je podczas wdrażania lub instalacji lokalnej.
flask
requests
azure.identity
azure.keyvault.secrets
azure.storage.queue
Podczas wdrażania aplikacji w usłudze Azure App Service platforma Azure automatycznie instaluje te wymagania na serwerze hosta. Podczas uruchamiania lokalnego zainstaluj je w środowisku za pomocą polecenia pip install -r requirements.txt.
Plik kodu rozpoczyna się od wymaganych instrukcji importu dla części bibliotek używanych w kodzie:
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
Zmienne środowiskowe
Kod aplikacji zależy od tych czterech zmiennych środowiskowych:
| Zmienna | Wartość |
|---|---|
THIRD_PARTY_API_ENDPOINT |
Adres URL interfejsu API innej firmy, taki jak https://msdocs-example-api.azurewebsites.net/api/RandomNumber opisany w część 3. |
KEY_VAULT_URL |
Adres URL usługi Azure Key Vault, w którym został zapisany klucz dostępu dla interfejsu API innej firmy. |
THIRD_PARTY_API_SECRET_NAME |
Nazwa tajemnicy w usłudze Key Vault, która zawiera klucz dostępu dla zewnętrznego interfejsu API. |
STORAGE_QUEUE_URL |
Adres URL kolejki Azure Storage, którą skonfigurujesz w Azure, na przykład https://msdocsexamplemainapp.queue.core.windows.net/code-requests (zobacz część 4). Ponieważ nazwa kolejki jest dołączana na końcu adresu URL, nazwa nie jest widoczna w dowolnym miejscu w kodzie. |
Sposób ustawiania tych zmiennych zależy od tego, gdzie działa kod:
Podczas lokalnego uruchamiania kodu należy utworzyć te zmienne w dowolnej powłoce poleceń (takiej jak program PowerShell, powłoka Bash lub CMD). (Jeśli wdrożysz aplikację na maszynie wirtualnej, utworzysz podobne zmienne po stronie serwera). Możesz również użyć biblioteki, takiej jak python-dotenv, która odczytuje pary klucz-wartość z pliku env i ustawia je jako zmienne środowiskowe.
Podczas wdrażania kodu w Azure App Service, jak pokazano w tym przewodniku, nie masz dostępu do samego serwera. Zamiast tego zdefiniuj ustawienia aplikacji o tych samych nazwach w konfiguracji usługi App Service. Te ustawienia automatycznie uwidaczniają aplikację jako zmienne środowiskowe.
Skrypty aprowizacji tworzą te ustawienia przy użyciu polecenia Azure CLI . az webapp config appsettings set Ustaw wszystkie cztery zmienne za pomocą jednego polecenia.
Aby utworzyć ustawienia za pośrednictwem witryny Azure Portal, zobacz Konfigurowanie aplikacji usługi App Service w witrynie Azure Portal.
Podczas lokalnego uruchamiania kodu należy również określić zmienne środowiskowe zawierające informacje o lokalnej jednostce usługi.
DefaultAzureCredential szuka tych wartości. Po wdrożeniu w usłudze App Service nie trzeba ustawiać tych wartości, ponieważ tożsamość zarządzana przypisana przez system aplikacji jest używana do uwierzytelniania.
| Zmienna | Wartość |
|---|---|
AZURE_TENANT_ID |
Identyfikator dzierżawy (katalogu) Microsoft Entra. |
AZURE_CLIENT_ID |
Identyfikator klienta (aplikacji) zarejestrowanej w dzierżawie. |
AZURE_CLIENT_SECRET |
Klucz tajny klienta wygenerowany w rejestracji aplikacji. |
Aby uzyskać więcej informacji, zobacz Uwierzytelnianie aplikacji Python do usług Azure podczas lokalnego rozwijania z wykorzystaniem jednostek usługi.