Udostępnij za pośrednictwem


Konfigurowanie środowiska lokalnego na potrzeby wdrażania aplikacji internetowych Python w usłudze Azure

W tym artykule pokazano, jak skonfigurować środowisko lokalne do tworzenia aplikacji Python web i wdrażania ich w Azure. Aplikacja internetowa może być czysta Python lub używać jednej z typowych platform internetowych opartych na Python, takich jak DjangoFlask lub FastAPI.

Aplikacje internetowe Python opracowane lokalnie można wdrażać w usługach, takich jak Azure App 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. W przypadku wdrażania z kodu można wdrożyć za pomocą Visual Studio Code, Azure CLI, lokalnego repozytorium Git lub akcji GitHub. W przypadku wdrożenia w kontenerze platformy Docker można to zrobić z poziomu Azure Container Registry, Docker Hub lub dowolnego rejestru prywatnego.

Przed kontynuowaniem pracy z tym artykułem zapoznaj się z Konsekguruj środowisko deweloperskie aby uzyskać wskazówki dotyczące konfigurowania środowiska deweloperskiego dla Python i Azure. W poniższych sekcjach omówione są ustawienia i konfiguracja specyficzna dla tworzenia aplikacji internetowych w Pythonie.

Po skonfigurowaniu środowiska lokalnego na potrzeby tworzenia aplikacji internetowych Python możesz radzić sobie z następującymi artykułami:

Praca z Visual Studio Code

Visual Studio Code zintegrowane środowisko projektowe (IDE) to prosty sposób tworzenia Python aplikacji internetowych i pracy z zasobami Azure używanymi przez aplikacje internetowe.

Napiwek

Upewnij się, że zainstalowano rozszerzenie Python. Aby zapoznać się z omówieniem pracy z Python w programie VS Code, zobacz temat Poprowadzenie pracy z Python w programie VS Code.

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

  • Rozszerzenie Azure App Service umożliwia interakcję z Azure App Service z poziomu 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 Azure Static Web Apps bezpośrednio z poziomu programu VS Code. Static Web Apps jest bezserwerowa i dobrym wyborem dla hostingu 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ą Python w Azure App Service przy użyciu Web Apps for Containers.

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

  • Inne rozszerzenia obejmują Azure Storage, Azure Databases i Azure Resources. Zawsze można dodawać te i inne rozszerzenia zgodnie z potrzebami.

Rozszerzenia w Visual Studio Code są dostępne zgodnie z oczekiwaniami w typowym interfejsie IDE. Obsługę zaawansowanych słów kluczowych można używać 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ć na zasobie Azure. Poniższy zrzut ekranu przedstawia niektóre akcje usługi App Service.

 Zrzut ekranu przedstawiający paletę poleceń Visual Studio Code usługi App Service.

Praca z kontenerami deweloperskimi w Visual Studio Code

Python deweloperzy często polegają na środowiskach 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 Python osobno 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 Python są dostępne popularne opcje zarządzania środowiskami, takimi jak virtualenv lub venv, rozszerzenie Visual Studio Code Dev Container (oparte na otwórz specyfikację kontenera deweloperskiego) umożliwia użycie kontenera 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 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 Python i wszystkie zależności projektu Python z odpowiednimi wersjami. Na koniec kontener może określić Visual Studio Code rozszerzenia 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 Praca w środowisku kontenera.

Praca z programem Visual Studio 2022

Visual Studio 2022 jest w pełni funkcjonalnym zintegrowanym środowiskiem projektowym (IDE) obsługującym tworzenie aplikacji Python oraz wiele wbudowanych narzędzi i rozszerzeń w celu uzyskiwania dostępu do zasobów Azure i wdrażania ich. Podczas gdy większość dokumentacji tworzenia aplikacji internetowych Python na Azure koncentruje się na używaniu Visual Studio Code, Visual Studio 2022 r. jest doskonałą opcją, jeśli masz już zainstalowaną aplikację, dobrze się z nią korzystasz i używasz jej w projektach .NET lub C++.

  • Ogólnie rzecz biorąc, zobacz Visual Studio | dokumentację Pythona dla całą dokumentację związaną z używaniem Pythona w Visual Studio 2022.

  • Aby uzyskać instrukcje konfiguracji, zobacz Install Python support in Visual Studio który przeprowadzi Cię przez kroki instalowania obciążenia Python do Visual Studio 2022.

  • Aby uzyskać ogólny przepływ pracy dotyczący używania Python do tworzenia aplikacji internetowych, zobacz Quickstart: Tworzenie pierwszej aplikacji internetowej Python przy użyciu Visual Studio. Ten artykuł jest przydatny do zrozumienia, jak utworzyć aplikację internetową Python od podstaw (ale nie obejmuje wdrożenia do Azure).

  • Aby zarządzać zasobami Azure i wdrażać je w Azure przy użyciu Visual Studio 2022 r., zobacz Azure Development with Visual Studio (Programowanie za pomocą Visual Studio. Chociaż większość dokumentacji w tym miejscu wspomina .NET, narzędzia do zarządzania zasobami Azure i wdrażania w Azure działają tak samo niezależnie od języka programowania.

  • Jeśli w Visual Studio 2022 nie ma wbudowanego narzędzia dla danego zadania zarządzania lub wdrażania 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 Azure, użyj Azure CLI do zarządzania zasobami Azure. Na poniższym zrzucie ekranu prosta aplikacja internetowa platformy Flask jest otwarta w środowisku IDE PyCharm . Aplikację internetową można wdrożyć w 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. Azure CLI należy zainstalować na komputerze i być dostępny w obu sytuacjach.

Zrzut ekranu środowiska PyCharm IDE pokazujący polecenie Azure CLI, które wdraża aplikację webową.

Azure CLI polecenia

W przypadku pracy lokalnej z aplikacjami internetowymi przy użyciu poleceń Azure CLI zazwyczaj są używane następujące polecenia:

Polecenie Opis
az webapp Zarządza aplikacjami internetowymi. Zawiera podpolecenia create i up do utworzenia aplikacji internetowej lub do utworzenia i wdrożenia z lokalnego obszaru roboczego.
az container app Zarządza Azure Container Apps.
az staticwebapp Zarządza Azure Static Web Apps.
az group Zarządza grupami zasobów i wdrożeniami szablonów. Użyj podpolecenia utwórz, aby stworzyć grupę zasobów w celu umieszczenia zasobów Azure.
az appservice Zarządza planami usługi App Service.
az config Zarządza konfiguracją Azure CLI. 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 Azure CLI umożliwiające utworzenie aplikacji internetowej i skojarzonych zasobów oraz wdrożenie jej w Azure w jednym poleceniu przy użyciu 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 Quickstart: Deploy a Python (Django or Flask) web app to Azure App Service (Wdrażanie aplikacji internetowej Django lub Flask).

Należy pamiętać, że w przypadku niektórych przepływów pracy Azure można również użyć Azure CLI z Azure Cloud Shell. Azure Cloud Shell to interaktywna, uwierzytelniona, dostępna w przeglądarce powłoka do zarządzania zasobami Azure.

pakiety kluczy Azure SDK

W aplikacjach internetowych Python można programowo odwoływać się do usług Azure przy użyciu Azure SDK Python. Sekcja Użyj biblioteki Azure (SDK) dla Python szeroko omawia ten zestaw SDK. W tej sekcji poznasz niektóre kluczowe pakiety zestawu SDK używanego w tworzeniu aplikacji internetowych. Zostanie również wyświetlony przykład, który jest zgodny z najlepszymi rozwiązaniami dotyczącymi uwierzytelniania kodu przy użyciu zasobów Azure.

W poniższej tabeli wymieniono niektóre pakiety często używane w tworzeniu aplikacji internetowych. Pakiety można instalować bezpośrednio w środowisku wirtualnym przy użyciu polecenia pip. Możesz też umieścić nazwę indeksu pakietów Python (PyPI) w pliku requirements.txt.

Dokumentacja zestawu SDK Instalować indeks pakietu Python
Azure Identity pip install azure-identity azure-identity
Azure Storage Blobs pip install azure-storage-blob azure-storage-blob
Azure Cosmos DB pip install azure-cosmos azure-cosmos
Azure Key Vault Wpisy tajne pip install azure-keyvault-secrets azure-keyvault-secrets

Pakiet azure-identity umożliwia aplikacji internetowej uwierzytelnianie przy użyciu Microsoft Entra ID. Aby uwierzytelnić się w kodzie aplikacji internetowej, użyj klasy DefaultAzureCredential w pakiecie azure-identity. W poniższym przykładzie pokazano, jak uzyskać dostęp do Azure Storage. Wzorzec jest podobny dla innych zasobów 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 wyszukuje wstępnie zdefiniowane lokalizacje informacji o koncie, takich jak zmienne środowiskowe lub logowanie Azure CLI. Aby uzyskać szczegółowe informacje na temat logiki DefaultAzureCredential, zobacz Authenticate Python apps to Azure services by using the Azure SDK for Python.

Pythonowe frameworki internetowe

Podczas tworzenia aplikacji internetowych Python często pracujesz z platformami internetowymi opartymi na 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 ponownego wynalezienia koła pod kątem typowych funkcji.

Trzy typowe frameworki internetowe Python to Django, Flask i FastAPI. Tych i innych struktur internetowych można używać z Azure.

W poniższym przykładzie pokazano, jak szybko rozpocząć pracę z tymi strukturami lokalnie. Po uruchomieniu tych poleceń kończy się aplikacja, choć prosta, którą można wdrożyć w Azure. Uruchom te polecenia w środowisku wirtualnym.

Krok 1: Pobierz frameworki za pomocą pip.

pip install Django

Krok 2. Utwórz aplikację hello world.

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

django-admin startproject hello_world

Krok 3: Uruchom kod lokalnie.

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

python hello_world\manage.py runserver

Krok 4: Przeglądaj aplikację hello world.

http://127.0.0.1:8000/

W tym momencie dodaj plik requirements.txt . Następnie wdróż aplikację internetową do Azure lub skonteneryzuj ją przy użyciu Dockera, a następnie wdroż.

Następne kroki