Konfigurowanie środowiska lokalnego na potrzeby wdrażania aplikacji internetowych w języku Python na platformie Azure

W tym artykule opisano konfigurowanie środowiska lokalnego w celu tworzenia aplikacji internetowych w języku Python i wdrażania ich na platformie Azure. Twoja aplikacja internetowa może być czysta w języku Python lub używać jednej z typowych struktur internetowych opartych na języku Python, takich jak Django, Flask lub FastAPI.

Aplikacje internetowe języka Python opracowane lokalnie można wdrażać w usługach, takich jak aplikacja systemu Azure Service, Azure Container Apps lub Azure Static Web Apps. Istnieje wiele opcji wdrażania. Na przykład w przypadku wdrożenia usługi App Service można wybrać wdrożenie z kodu, kontenera platformy Docker lub statycznej aplikacji internetowej. Jeśli wdrażasz z kodu, możesz wdrożyć za pomocą programu Visual Studio Code, za pomocą interfejsu wiersza polecenia platformy Azure, z lokalnego repozytorium Git lub za pomocą akcji Usługi GitHub. W przypadku wdrożenia w kontenerze platformy Docker można to zrobić z poziomu usługi Azure Container Registry, usługi Docker Hub lub dowolnego rejestru prywatnego.

Przed kontynuowaniem pracy z tym artykułem zalecamy zapoznanie się z artykułem Konfigurowanie środowiska deweloperskiego, aby uzyskać wskazówki dotyczące konfigurowania środowiska deweloperskiego dla języka Python i platformy Azure. Poniżej omówimy konfigurację i konfigurację specyficzną dla tworzenia aplikacji internetowych w języku Python.

Po dokonaniu konfiguracji środowiska lokalnego na potrzeby tworzenia aplikacji internetowych w języku Python możesz przystąpić do rozwiązywania następujących artykułów:

Praca z programem Visual Studio Code

Zintegrowane środowisko projektowe (IDE) programu Visual Studio Code to prosty sposób tworzenia aplikacji internetowych w języku Python i pracy z zasobami platformy Azure używanymi przez aplikacje internetowe.

Napiwek

Upewnij się, że masz zainstalowane rozszerzenie języka Python . Aby zapoznać się z omówieniem pracy z językiem Python w programie VS Code, zobacz Wprowadzenie do języka Python w programie VS Code.

W programie VS Code pracujesz z zasobami platformy Azure za pomocą rozszerzeń programu VS Code. Rozszerzenia można zainstalować z widoku rozszerzeń lub kombinacji klawiszy Ctrl+Shift+X. W przypadku aplikacji internetowych języka Python prawdopodobnie będziesz pracować z co najmniej jednym z następujących rozszerzeń:

  • Rozszerzenie usługi aplikacja systemu Azure umożliwia interakcję z usługą aplikacja systemu Azure z poziomu programu Visual Studio Code. Usługa App Service zapewnia w pełni zarządzane hosting dla aplikacji internetowych, w tym witryn internetowych i internetowych interfejsów API.

  • Rozszerzenie Azure Static Web Apps umożliwia tworzenie usługi Azure Static Web Apps bezpośrednio z poziomu programu VS Code. Usługa Static Web Apps jest bezserwerowa i dobrym wyborem do hostowania zawartości statycznej.

  • Jeśli planujesz pracę z kontenerami, zainstaluj następujące elementy:

    • Rozszerzenie platformy Docker do kompilowania i pracy z kontenerami lokalnie. Na przykład można uruchomić konteneryzowaną aplikację internetową w języku Python w usłudze aplikacja systemu Azure przy użyciu usługi Web Apps for Containers.

    • Rozszerzenie Azure Container Apps do tworzenia i wdrażania konteneryzowanych aplikacji bezpośrednio z poziomu programu Visual Studio Code.

  • Istnieją inne rozszerzenia, takie jak usługi Azure Storage, Azure Databases i Rozszerzenia zasobów platformy Azure. Zawsze można dodawać te i inne rozszerzenia zgodnie z potrzebami.

Rozszerzenia w programie Visual Studio Code są dostępne zgodnie z oczekiwaniami w typowym interfejsie IDE i obsługą zaawansowanych słów kluczowych przy użyciu palety poleceń programu VS Code. Aby uzyskać dostęp do palety poleceń, użyj kombinacji klawiszy Ctrl+Shift+P. Paleta poleceń to dobry sposób na sprawdzenie wszystkich możliwych akcji, które można wykonać w zasobie platformy Azure. Poniższy zrzut ekranu przedstawia niektóre akcje usługi App Service.

A screenshot of the Visual Studio Code command palette for App Service.

Praca z kontenerami deweloperskimi w programie Visual Studio Code

Deweloperzy języka Python często korzystają ze środowisk wirtualnych w celu utworzenia izolowanego i samodzielnego środowiska dla określonego projektu. Środowiska wirtualne umożliwiają deweloperom zarządzanie zależnościami, pakietami i wersjami języka Python oddzielnie dla każdego projektu, co pozwala uniknąć konfliktów między różnymi projektami, które mogą wymagać różnych wersji pakietów.

Chociaż w języku Python są dostępne popularne opcje zarządzania środowiskami takimi jak virtualenv lub venv, rozszerzenie kontenera deweloperskiego programu Visual Studio Code (oparte na otwartej specyfikacji kontenera deweloperskiego) umożliwia używanie kontenera platformy Docker jako w pełni funkcjonalnego środowiska konteneryzowanego. Dzięki temu deweloperzy mogą definiować spójny i łatwy do odtworzenia łańcuch narzędzi ze wszystkimi niezbędnymi narzędziami, zależnościami i rozszerzeniami wstępnie skonfigurowanymi. Oznacza to, że jeśli masz wymagania systemowe, konfiguracje powłoki lub całkowicie użyjesz innych języków, możesz użyć kontenera deweloperskiego, aby jawnie skonfigurować wszystkie te części projektu, które mogą istnieć poza podstawowym środowiskiem języka Python.

Na przykład deweloper może skonfigurować pojedynczy kontener deweloperski tak, aby zawierał wszystkie elementy potrzebne do pracy nad projektem, w tym serwer bazy danych PostgreSQL wraz z bazą danych projektu i przykładowymi danymi, serwerem Redis, serwerem Nginx, kodem frontonu, bibliotekami klienta, takimi jak React itd. Ponadto kontener zawiera kod projektu, środowisko uruchomieniowe języka Python i wszystkie zależności projektu w języku Python z odpowiednimi wersjami. Na koniec kontener może określić rozszerzenia programu Visual Studio Code do zainstalowania, aby cały zespół miał dostępne te same narzędzia. Dlatego gdy nowy deweloper dołącza do zespołu, całe środowisko, w tym narzędzia, zależności i dane, jest gotowe do sklonowania na maszynę lokalną i może natychmiast rozpocząć pracę.

Zobacz Tworzenie wewnątrz kontenera.

Praca z programem Visual Studio 2022

Visual Studio 2022 to w pełni funkcjonalne zintegrowane środowisko projektowe (IDE) z obsługą tworzenia aplikacji w języku Python oraz wiele wbudowanych narzędzi i rozszerzeń w celu uzyskiwania dostępu do zasobów platformy Azure i wdrażania ich. Podczas gdy większość dokumentacji tworzenia aplikacji internetowych w języku Python na platformie Azure koncentruje się na używaniu programu Visual Studio Code, program Visual Studio 2022 jest doskonałym rozwiązaniem, jeśli jest już zainstalowany, dobrze się z nim korzysta i używa go w projektach platformy .NET lub C++.

Praca z innymi środowiskami IDE

Jeśli pracujesz w innym środowisku IDE, które nie ma jawnej obsługi platformy Azure, możesz użyć interfejsu wiersza polecenia platformy Azure do zarządzania zasobami platformy Azure. Na poniższym zrzucie ekranu prosta aplikacja internetowa platformy Flask jest otwarta w środowisku IDE PyCharm . Aplikację internetową można wdrożyć w usłudze aplikacja systemu Azure przy użyciu az webapp up polecenia . Na zrzucie ekranu polecenie interfejsu wiersza polecenia jest uruchamiane w osadzonym emulatorze terminalu PyCharm. Jeśli środowisko IDE nie ma osadzonego emulatora, możesz użyć dowolnego terminalu i tego samego polecenia. Interfejs wiersza polecenia platformy Azure musi być zainstalowany na komputerze i być dostępny w obu przypadkach.

A screenshot of the PyCharm IDE with an Azure CLI command deploying a web app.

Polecenia interfejsu wiersza polecenia platformy Azure

Podczas pracy lokalnie z aplikacjami internetowymi przy użyciu poleceń interfejsu wiersza polecenia platformy Azure zazwyczaj będziesz pracować z następującymi poleceniami:

Polecenie opis
az webapp Zarządza aplikacjami internetowymi. Obejmuje polecenia podrzędne utworzone w celu utworzenia aplikacji internetowej oraz tworzenia i wdrażania z lokalnego obszaru roboczego
az container app Zarządza usługą Azure Container Apps.
az staticwebapp Zarządza usługą Azure Static Web Apps.
az group Zarządza grupami zasobów i wdrożeniami szablonów. Użyj polecenia podrzędnego utwórz do grupy zasobów, aby umieścić zasoby platformy Azure.
az appservice Zarządza planami usługi App Service.
az config Konfiguracja zarządzanego interfejsu wiersza polecenia platformy Azure. Aby zapisać naciśnięcia klawiszy, możesz zdefiniować domyślną lokalizację lub grupę zasobów, której używają inne polecenia automatycznie.

Oto przykładowe polecenie interfejsu wiersza polecenia platformy Azure umożliwiające utworzenie aplikacji internetowej i skojarzonych zasobów oraz wdrożenie jej na platformie Azure w jednym poleceniu przy użyciu polecenia az webapp up. Uruchom polecenie w katalogu głównym aplikacji internetowej.

az webapp up \
    --runtime PYTHON:3.9 \
    --sku B1 \
    --logs

Aby uzyskać więcej informacji na temat tego przykładu, zobacz Szybki start: wdrażanie aplikacji internetowej w języku Python (Django lub Flask) w usłudze aplikacja systemu Azure Service.

Należy pamiętać, że w przypadku niektórych przepływów pracy platformy Azure możesz również użyć interfejsu wiersza polecenia platformy Azure z poziomu usługi Azure Cloud Shell. Usługa Azure Cloud Shell to interaktywna, uwierzytelniona, dostępna w przeglądarce powłoka służąca do zarządzania zasobami platformy Azure.

Pakiety kluczy zestawu Azure SDK

W aplikacjach internetowych języka Python można programowo odwoływać się do usług platformy Azure przy użyciu zestawu Azure SDK dla języka Python. Ten zestaw SDK jest szeroko omówiony w sekcji Korzystanie z bibliotek platformy Azure (SDK) dla języka Python. W tej sekcji krótko omówimy niektóre kluczowe pakiety zestawu SDK, które będą używane podczas tworzenia aplikacji internetowych. Przedstawimy przykład dotyczący najlepszych rozwiązań dotyczących uwierzytelniania kodu za pomocą zasobów platformy Azure.

Poniżej przedstawiono niektóre pakiety często używane w tworzeniu aplikacji internetowych. Pakiety można instalować bezpośrednio w środowisku wirtualnym za pomocą polecenia pip. Możesz też umieścić nazwę indeksu pakietów języka Python (Pypi) w pliku requirements.txt .

Dokumentacja zestawu SDK Instalowanie Indeks pakietu języka Python
Tożsamość platformy Azure pip install azure-identity azure-identity
Obiekty blob usługi Azure Storage pip install azure-storage-blob azure-storage-blob
Azure Cosmos DB pip install azure-cosmos azure-cosmos
Wpisy tajne usługi Azure Key Vault pip install azure-keyvault-secrets azure-keyvault-secrets

Pakiet azure-identity umożliwia aplikacji internetowej uwierzytelnianie za pomocą identyfikatora Entra firmy Microsoft. W przypadku uwierzytelniania w kodzie aplikacji internetowej zaleca się użycie wartości DefaultAzureCredential w pakiecie azure-identity . Oto przykład sposobu uzyskiwania dostępu do usługi Azure Storage. Wzorzec jest podobny dla innych zasobów platformy Azure.

from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient

azure_credential = DefaultAzureCredential()
blob_service_client = BlobServiceClient(
    account_url=account_url,
    credential=azure_credential)

Element DefaultAzureCredential będzie szukać w wstępnie zdefiniowanych lokalizacjach informacji o koncie, na przykład w zmiennych środowiskowych lub logowaniu za pomocą interfejsu wiersza polecenia platformy Azure. Aby uzyskać szczegółowe informacje na DefaultAzureCredential temat logiki, zobacz Uwierzytelnianie aplikacji języka Python w usługach platformy Azure przy użyciu zestawu Azure SDK dla języka Python.

Platformy internetowe oparte na języku Python

Podczas tworzenia aplikacji internetowych w języku Python często pracujesz z platformami internetowymi opartymi na języku Python. Te struktury zapewniają funkcje takie jak szablony stron, zarządzanie sesjami, dostęp do bazy danych i łatwy dostęp do obiektów żądań i odpowiedzi HTTP. Struktury umożliwiają uniknięcie konieczności ponownego wynalezienia koła pod kątem typowych funkcji.

Trzy typowe struktury internetowe języka Python to Django, Flask lub FastAPI. Te i inne struktury internetowe mogą być używane z platformą Azure.

Poniżej przedstawiono przykład szybkiego rozpoczęcia pracy z tymi strukturami lokalnie. Uruchomienie tych poleceń zakończy się aplikacją, choć prostą, którą można wdrożyć na platformie Azure. Uruchom te polecenia w środowisku wirtualnym.

Krok 1. Pobieranie struktur za pomocą narzędzia pip.

pip install Django

Krok 2. Tworzenie aplikacji hello world.

Utwórz przykładowy projekt przy użyciu polecenia django-admin startproject . Projekt zawiera plik manage.py , który jest punktem wejścia do uruchamiania aplikacji.

django-admin startproject hello_world

Krok 3. Uruchamianie kodu lokalnie.

Platforma Django używa usługi WSGI do uruchamiania aplikacji.

python hello_world\manage.py runserver

Krok 4. Przeglądanie aplikacji hello world.

http://127.0.0.1:8000/

W tym momencie dodaj plik requirements.txt , a następnie możesz wdrożyć aplikację internetową na platformie Azure lub konteneryzować ją za pomocą platformy Docker, a następnie wdrożyć ją.

Następne kroki