Uwaga
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. Po wdrożeniu aplikacji na platformie Azure te zmienne środowiskowe są dostarczane za pośrednictwem ustawień aplikacji w usłudze 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
Te zależności są uwzględniane w pliku requirements.txt aplikacji i instalowane 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 przy użyciu 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ść |
---|---|
punkt końcowy API zewnętrznej firmy | 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. |
ADRES_URL_KOLEJKI_MAGAZYNOWANIA | 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:
W przypadku lokalnego uruchamiania kodu te zmienne są tworzone w dowolnej używanej powłoce poleceń (na przykład programu PowerShell, powłoki Bash lub cmD). (W przypadku wdrożenia aplikacji na maszynie wirtualnej należy utworzyć 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
Po wdrożeniu kodu w usłudze Azure App Service, jak pokazano w tym przewodniku, nie masz dostępu do samego serwera. Zamiast tego należy zdefiniować ustawienia aplikacji o tych samych nazwach w konfiguracji usługi App Service. Te ustawienia są automatycznie widoczne dla aplikacji jako zmienne środowiskowe.
Skrypty aprowizacji tworzą te ustawienia za pomocą polecenia Azure CLI, az webapp config appsettings set
. Wszystkie cztery zmienne są ustawiane 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 (tajny klucz klienta Azure) | Tajny klucz klienta wygenerowany dla rejestracji aplikacji. |
Aby uzyskać więcej informacji, zobacz Uwierzytelnianie aplikacji Python do usług Azure podczas lokalnego rozwijania z wykorzystaniem jednostek usługi.