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:
- Szybki start: tworzenie aplikacji internetowej w języku Python (Django lub Flask) w usłudze aplikacja systemu Azure Service.
- Samouczek: wdrażanie aplikacji internetowej w języku Python (Django lub Flask) przy użyciu bazy danych PostgreSQL na platformie Azure
- Tworzenie i wdrażanie aplikacji internetowej platformy Flask na platformie Azure przy użyciu tożsamości zarządzanej przypisanej przez system
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.
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++.
Ogólnie rzecz biorąc, zobacz Visual Studio | Dokumentacja języka Python dla wszystkich dokumentacji związanych z używaniem języka Python w programie Visual Studio 2022.
Aby uzyskać instrukcje konfiguracji, zobacz Instalowanie obsługi języka Python w programie Visual Studio , który przeprowadzi Cię przez kroki instalowania obciążenia języka Python w programie Visual Studio 2022.
Aby uzyskać ogólny przepływ pracy dotyczący używania języka Python do tworzenia aplikacji internetowych, zobacz Szybki start: tworzenie pierwszej aplikacji internetowej w języku Python przy użyciu programu Visual Studio. Ten artykuł jest przydatny do zrozumienia, jak utworzyć aplikację internetową w języku Python od podstaw (ale nie obejmuje wdrożenia na platformie Azure).
Aby zarządzać zasobami platformy Azure i wdrażać je na platformie Azure przy użyciu programu Visual Studio 2022, zobacz Azure Development with Visual Studio (Programowanie na platformie Azure za pomocą programu Visual Studio). Większość dokumentacji w tym miejscu wspomina o platformie .NET, jednak narzędzia do zarządzania zasobami platformy Azure i wdrażania na platformie Azure działają tak samo niezależnie od języka programowania.
Jeśli nie ma wbudowanego narzędzia dostępnego w programie Visual Studio 2022 dla danego zadania zarządzania lub wdrażania platformy Azure, zawsze możesz użyć poleceń interfejsu wiersza polecenia platformy Azure.
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.
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.
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.
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
- Szybki start: tworzenie aplikacji internetowej w języku Python (Django lub Flask) w usłudze aplikacja systemu Azure Service.
- Samouczek: wdrażanie aplikacji internetowej w języku Python (Django lub Flask) przy użyciu bazy danych PostgreSQL na platformie Azure
- Tworzenie i wdrażanie aplikacji internetowej platformy Flask na platformie Azure przy użyciu tożsamości zarządzanej przypisanej przez system