Udostępnij za pośrednictwem


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 Python i wdrażania ich na platformie Azure. 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, flasklub fastAPI.

Aplikacje internetowe języka Python opracowane lokalnie można wdrażać w usługach, takich jak Azure App Service, Azure Container Appslub 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ą Azure CLI, z lokalnego repozytorium Git lub za pomocą GitHub Actions. 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 Konfigurowanie środowiska deweloperskiego, aby uzyskać wskazówki dotyczące konfigurowania środowiska deweloperskiego dla języka Python i platformy Azure. Poniżej omówimy ustawienia i konfigurację specyficzną dla tworzenia aplikacji webowych w Pythonie.

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

Visual Studio Code zintegrowane środowisko projektowe (IDE) to łatwy 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 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 instalować z Extensions View lub kombinacji Ctrl+Shift+X. W przypadku aplikacji internetowych języka Python prawdopodobnie będziesz pracować z co najmniej jednym z następujących rozszerzeń:

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

  • 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 Docker do tworzenia i pracy z kontenerami lokalnie. Na przykład można uruchomić konteneryzowaną aplikację internetową w języku Python w usłudze Azure App Service 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 Azure Storage, Azure Databasesi rozszerzenia usługi Azure Resources. 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 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.

Zrzut ekranu palety poleceń programu Visual Studio Code dla 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 otwórzspecyfikacji kontenera deweloperskiego ) umożliwia korzystanie z 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żywasz innych języków, możesz użyć kontenera deweloperskiego do jawnego skonfigurowania wszystkich tych części projektu, które mogą znajdować się 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. Kiedy nowy deweloper dołącza do zespołu, całe środowisko, w tym narzędzia, zależności i dane, jest gotowe do sklonowania na jego/jej maszynę lokalną, i on/ona 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 wielu 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. 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 w Visual Studio 2022 nie ma dostępnego wbudowanego narzędzia dla danego zadania zarządzania lub wdrażania platformy Azure, zawsze możesz użyć poleceń Azure CLI.

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 Azure App Service przy użyciu polecenia az webapp up. Na zrzucie ekranu polecenie CLI działa 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.

Zrzut ekranu przedstawiający środowisko IDE PyCharm z poleceniem Azure CLI wdrażającym aplikację internetową.

Polecenia CLI platformy Azure

Podczas lokalnej pracy z aplikacjami internetowymi, używając poleceń Azure CLI, zazwyczaj będziesz korzystać z następujących poleceń:

Polecenie Opis
az webapp Zarządza aplikacjami internetowymi. Obejmuje podpolecenia utworzyć i skonfigurować, aby odpowiednio utworzyć aplikację internetową lub utworzyć i wdrożyć 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 podpolecenia, utworzyć, aby utworzyć grupę zasobów w celu umieszczenia zasobów platformy Azure.
az appservice Zarządza planami usługi App Service.
az config Zarządza konfiguracją interfejsu wiersza polecenia platformy Azure. Aby zapisać naciśnięcia, 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 Azure App 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 do zarządzania zasobami platformy Azure.

Podstawowe pakiety 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 Używanie 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 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ą pip. Możesz też umieścić nazwę indeksu pakietów języka Python (Pypi) w pliku requirements.txt.

Dokumentacja zestawu SDK Instalować Indeks pakietu języka Python
Azure Identity pip install azure-identity azure-identity
obiektów blob usługi Azure Storage pip install azure-storage-blob azure-storage-blob
Azure Cosmos DB pip install azure-cosmos azure-cosmos
Sekrety 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 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)

DefaultAzureCredential będzie szukać w wstępnie zdefiniowanych lokalizacjach dla informacji o koncie, na przykład w zmiennych środowiskowych lub logowaniu się za pomocą interfejsu wiersza polecenia Azure CLI. Aby uzyskać szczegółowe informacje na temat logiki DefaultAzureCredential, 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, Flasklub 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: Pobierz struktury za pomocą narzędzia .

pip install Django

Krok 2: Tworzenie aplikacji hello world.

  • Django
  • Flask
  • FastAPI

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. Lokalne uruchamianie kodu.

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