Udostępnij za pośrednictwem


Część 5. Główne zależności aplikacji, instrukcje importu i zmienne środowiskowe

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.