Szybki start: tworzenie funkcji na platformie Azure przy użyciu języka Python przy użyciu Visual Studio Code
W tym artykule użyjesz Visual Studio Code do utworzenia funkcji języka Python, która odpowiada na żądania HTTP. Po przetestowaniu kodu lokalnie należy wdrożyć go w środowisku bezserwerowym Azure Functions.
W tym artykule opisano oba modele programowania w języku Python obsługiwane przez Azure Functions. Użyj selektora u góry, aby wybrać model programowania.
Uwaga
Model programowania języka Python w wersji 2 dla usługi Functions jest obecnie dostępny w wersji zapoznawczej. Aby dowiedzieć się więcej na temat modelu programowania w wersji 2, zobacz Przewodnik po dokumentacji dla deweloperów.
Ukończenie tego przewodnika Szybki start wiąże się z niewielkimi kosztami w wysokości kilku centów lub mniej na koncie platformy Azure.
Ten artykuł zawiera również wersję interfejsu wiersza polecenia .
Konfigurowanie środowiska
Przed rozpoczęciem upewnij się, że zostały spełnione następujące wymagania:
- Konto platformy Azure z aktywną subskrypcją. Utwórz bezpłatne konto.
- Narzędzia Azure Functions Core Tools w wersji 4.x.
- Narzędzia Azure Functions Core Tools w wersji 4.0.4785 lub nowszej.
Wersje języka Python obsługiwane przez Azure Functions. Aby uzyskać więcej informacji, zobacz How to install Python (Jak zainstalować język Python).
Program Visual Studio Code na jednej z obsługiwanych platform.
Rozszerzenie języka Python dla Visual Studio Code.
- Rozszerzenie Azure Functions dla Visual Studio Code w wersji 1.8.3 lub nowszej.
Rozszerzenie Azure Functions dla Visual Studio Code w wersji 1.8.1 lub nowszej.
Lokalny emulator magazynu Azurite w wersji 3 . Chociaż możesz również użyć rzeczywistego konta usługi Azure Storage, w tym artykule przyjęto założenie, że używasz emulatora Azurite.
Ważne
Funkcje nie obsługują obecnie tworzenia funkcji języka Python na urządzeniach ARM64. Aby opracowywać funkcje języka Python na komputerze Mac z mikroukładem M1, należy uruchomić je w emulowanym środowisku x86. Aby dowiedzieć się więcej, zobacz emulacja x86 w architekturze ARM64.
Tworzenie projektu lokalnego
W tej sekcji użyjesz Visual Studio Code do utworzenia lokalnego projektu Azure Functions w języku Python. W dalszej części tego artykułu opublikujesz kod funkcji na platformie Azure.
Wybierz ikonę platformy Azure na pasku działań. Następnie w obszarze Roboczy (lokalny) wybierz + przycisk, wybierz pozycję Utwórz funkcję na liście rozwijanej. Po wyświetleniu monitu wybierz pozycję Utwórz nowy projekt.
Wybierz lokalizację katalogu dla obszaru roboczego projektu i wybierz pozycję Wybierz. Należy utworzyć nowy folder lub wybrać pusty folder dla obszaru roboczego projektu. Nie wybieraj folderu projektu, który jest już częścią obszaru roboczego.
Podaj następujące informacje po wyświetleniu monitów:
Monit Wybór Wybierz język Wybierz plik Python
.Wybieranie interpretera języka Python w celu utworzenia środowiska wirtualnego Wybierz preferowany interpreter języka Python. Jeśli opcja nie jest wyświetlana, wpisz pełną ścieżkę do pliku binarnego języka Python. Wybieranie szablonu dla pierwszej funkcji projektu Wybierz plik HTTP trigger
.Podaj nazwę funkcji Wprowadź HttpExample
.Poziom autoryzacji Wybierz pozycję Anonymous
, która umożliwia każdemu wywołanie punktu końcowego funkcji. Aby uzyskać więcej informacji na temat poziomu autoryzacji, zobacz Klucze autoryzacji.Wybierz sposób otwierania projektu Wybierz plik Add to workspace
.Visual Studio Code używa podanych informacji i generuje projekt Azure Functions z wyzwalaczem HTTP. Lokalne pliki projektu można wyświetlić w Eksploratorze. Aby uzyskać więcej informacji na temat tworzonych plików, zobacz Wygenerowane pliki projektu.
Podaj następujące informacje po wyświetleniu monitów:
Monit Wybór Wybierz język Wybierz plik Python (Programming Model V2)
.Wybieranie interpretera języka Python w celu utworzenia środowiska wirtualnego Wybierz preferowany interpreter języka Python. Jeśli opcja nie jest wyświetlana, wpisz pełną ścieżkę do pliku binarnego języka Python. Wybierz sposób otwierania projektu Wybierz plik Add to workspace
.Visual Studio Code używa podanych informacji i generuje projekt Azure Functions.
Otwórz wygenerowany
function_app.py
plik projektu zawierający funkcje.Usuń znaczniki komentarza
test_function
z funkcji, która jest funkcją wyzwalaną przez protokół HTTP.Zastąp wywołanie
app.route()
metody następującym kodem:@app.route(route="hello", auth_level=func.AuthLevel.ANONYMOUS)
Ten kod umożliwia wywoływanie punktu końcowego funkcji HTTP na platformie Azure bez konieczności podawania kluczy autoryzacji. Wykonywanie lokalne nie wymaga kluczy autoryzacji.
Kod funkcji powinien teraz wyglądać podobnie do następującego przykładu:
app = func.FunctionApp() @app.function_name(name="HttpTrigger1") @app.route(route="hello", auth_level=func.AuthLevel.ANONYMOUS) def test_function(req: func.HttpRequest) -> func.HttpResponse: logging.info('Python HTTP trigger function processed a request.') name = req.params.get('name') if not name: try: req_body = req.get_json() except ValueError: pass else: name = req_body.get('name') if name: return func.HttpResponse(f"Hello, {name}. This HTTP triggered function executed successfully.") else: return func.HttpResponse( "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.", status_code=200 )
Otwórz plik projektu local.settings.json i zaktualizuj
AzureWebJobsStorage
ustawienie, jak w poniższym przykładzie:"AzureWebJobsStorage": "UseDevelopmentStorage=true",
Informuje to hosta usługi Functions lokalnego o użyciu emulatora magazynu dla połączenia magazynu obecnie wymaganego przez model w wersji 2. Podczas publikowania projektu na platformie Azure zamiast tego użyjesz domyślnego konta magazynu. Jeśli zamiast tego używasz konta usługi Azure Storage, ustaw parametry połączenia konta magazynu tutaj.
Uruchamianie emulatora
W Visual Studio Code naciśnij klawisz F1, aby otworzyć paletę poleceń. W palecie poleceń wyszukaj i wybierz pozycję
Azurite: Start
.Sprawdź dolny pasek i sprawdź, czy usługi emulacji Azurite są uruchomione. Jeśli tak, możesz teraz uruchomić funkcję lokalnie.
Lokalne uruchamianie funkcji
Visual Studio Code integruje się z narzędziami Azure Functions Core, aby umożliwić uruchamianie tego projektu na lokalnym komputerze deweloperów przed opublikowaniem na platformie Azure.
Aby uruchomić funkcję lokalnie, naciśnij klawisz F5 lub ikonę Uruchom i debuguj na pasku działań po lewej stronie. Na panelu Terminal zostaną wyświetlone dane wyjściowe z narzędzi Core Tools. Aplikacja zostanie uruchomiona w panelu terminalu . Punkt końcowy adresu URL funkcji wyzwalanej przez protokół HTTP jest widoczny lokalnie.
Jeśli masz problemy z uruchamianiem w systemie Windows, upewnij się, że domyślny terminal dla Visual Studio Code nie jest ustawiony na powłokę WSL Bash.
Gdy narzędzia Core Tools nadal działają w terminalu, wybierz ikonę platformy Azure na pasku działań. W obszarze Obszar roboczy rozwiń węzeł Funkcje projektu> lokalnego. Kliknij prawym przyciskiem myszy (Windows) lub Ctrl — kliknij (macOS) nową funkcję i wybierz polecenie Wykonaj funkcję teraz....
W polu Wprowadź treść żądania zostanie wyświetlona wartość treści komunikatu
{ "name": "Azure" }
żądania . Naciśnij klawisz Enter, aby wysłać ten komunikat żądania do funkcji.Gdy funkcja jest wykonywana lokalnie i zwraca odpowiedź, w Visual Studio Code jest zgłaszane powiadomienie. Informacje o wykonywaniu funkcji są wyświetlane na panelu terminalu .
Po fokusie panelu terminala naciśnij klawisze Ctrl + C , aby zatrzymać narzędzia Core Tools i odłączyć debuger.
Po sprawdzeniu, czy funkcja działa prawidłowo na komputerze lokalnym, nadszedł czas, aby użyć Visual Studio Code do opublikowania projektu bezpośrednio na platformie Azure.
Logowanie do platformy Azure
Zanim będzie można opublikować aplikację, należy zalogować się do platformy Azure.
Jeśli jeszcze nie zalogowaliśmy się, wybierz ikonę platformy Azure na pasku działań. Następnie w obszarze Zasoby wybierz pozycję Zaloguj się do platformy Azure....
Jeśli już się zalogowałeś i widzisz istniejące subskrypcje, przejdź do następnej sekcji. Jeśli nie masz jeszcze konta platformy Azure, wybierz pozycję Utwórz i konto platformy Azure.... Uczniowie mogą wybrać pozycję Utwórz i konto platformy Azure for Students....
Po wyświetleniu monitu w przeglądarce wybierz konto platformy Azure i zaloguj się przy użyciu poświadczeń konta platformy Azure. Jeśli tworzysz nowe konto, możesz zalogować się po utworzeniu konta.
Po pomyślnym zalogowaniu możesz zamknąć nowe okno przeglądarki. Subskrypcje należące do konta platformy Azure są wyświetlane na pasku bocznym.
Tworzenie aplikacji funkcji na platformie Azure
W tej sekcji utworzysz aplikację funkcji i powiązane zasoby w subskrypcji platformy Azure.
Wybierz ikonę platformy Azure na pasku działań. Następnie w obszarze Zasoby wybierz ikonę + i wybierz opcję Utwórz aplikację funkcji na platformie Azure .
Podaj następujące informacje po wyświetleniu monitów:
Monit Wybór Wybierz subskrypcję Wybierz subskrypcję do użycia. Ten monit nie będzie wyświetlany, gdy w obszarze Zasoby jest widoczna tylko jedna subskrypcja. Wprowadź globalnie unikatową nazwę aplikacji funkcji Wpisz nazwę, która jest prawidłowa w ścieżce adresu URL. Wpisana nazwa jest weryfikowana, aby upewnić się, że jest unikatowa w Azure Functions. Wybieranie stosu środowiska uruchomieniowego Wybierz wersję języka, w której uruchomiono lokalnie. Wybierz lokalizację dla nowych zasobów Wybierz region dla aplikacji funkcji. W bieżącej wersji zapoznawczej modelu programowania w wersji 2 wybierz region z jednej z następujących lokalizacji: Francja Środkowa, Zachodnio-środkowe stany USA, Europa Północna, Chiny Wschodnie, Wschodnie stany USA lub Północno-środkowe stany USA.
Rozszerzenie pokazuje stan poszczególnych zasobów podczas ich tworzenia na platformie Azure w panelu Azure: Dziennik aktywności .
Po zakończeniu tworzenia w ramach subskrypcji zostaną utworzone następujące zasoby platformy Azure. Zasoby są nazwane na podstawie nazwy aplikacji funkcji:
- Grupa zasobów, która jest logicznym kontenerem powiązanych zasobów.
- Standardowe konto usługi Azure Storage, które utrzymuje stan i inne informacje o projektach.
- Aplikacja funkcji, która udostępnia środowisko do wykonywania kodu funkcji. Aplikacja funkcji umożliwia grupowanie funkcji jako jednostki logicznej w celu łatwiejszego zarządzania, wdrażania i udostępniania zasobów w ramach tego samego planu hostingu.
- Plan App Service, który definiuje hosta podstawowego dla aplikacji funkcji.
- Wystąpienie usługi Application Insights połączone z aplikacją funkcji, które śledzi użycie funkcji w aplikacji.
Po utworzeniu aplikacji funkcji i zastosowaniu pakietu wdrożeniowego zostanie wyświetlone powiadomienie.
Porada
Domyślnie zasoby platformy Azure wymagane przez aplikację funkcji są tworzone na podstawie podanej nazwy aplikacji funkcji. Domyślnie są one również tworzone w tej samej nowej grupie zasobów z aplikacją funkcji. Jeśli chcesz dostosować nazwy tych zasobów lub ponownie użyć istniejących zasobów, musisz opublikować projekt z zaawansowanymi opcjami tworzenia .
Wdrażanie projektu na platformie Azure
Ważne
Wdrażanie w istniejącej aplikacji funkcji zawsze zastępuje zawartość tej aplikacji na platformie Azure.
Wybierz ikonę platformy Azure na pasku działań, a następnie w obszarze Obszar roboczy wybierz folder projektu i wybierz przycisk Wdróż... .
Wybierz pozycję Wdróż w aplikacji funkcji..., wybierz właśnie utworzoną aplikację funkcji, a następnie wybierz pozycję Wdróż.
Po zakończeniu wdrażania wybierz pozycję Wyświetl dane wyjściowe , aby wyświetlić wyniki tworzenia i wdrażania, w tym utworzone zasoby platformy Azure. Jeśli przegapisz powiadomienie, wybierz ikonę dzwonka w prawym dolnym rogu, aby zobaczyć je ponownie.
Aktualizowanie ustawień aplikacji
Aby użyć modelu języka Python w wersji 2 w aplikacji funkcji, należy dodać nowe ustawienie aplikacji na platformie Azure o nazwie z AzureWebJobsFeatureFlags
wartością EnableWorkerIndexing
. To ustawienie znajduje się już w pliku local.settings.json.
W Visual Studio Code naciśnij klawisz F1, aby otworzyć paletę poleceń. W palecie poleceń wyszukaj i wybierz pozycję
Azure Functions: Add New Setting...
.Wybierz nową aplikację funkcji, wpisz
AzureWebJobsFeatureFlags
nazwę nowego ustawienia aplikacji i naciśnij klawisz Enter.Dla wartości wpisz
EnableWorkerIndexing
i naciśnij klawisz Enter.
Ustawienie dodane do nowej aplikacji funkcji, co umożliwia uruchamianie modelu w wersji 2 na platformie Azure.
Uruchamianie funkcji na platformie Azure
Wróć do obszaru Zasoby na pasku bocznym, rozwiń subskrypcję, nową aplikację funkcji i funkcje. Kliknij prawym przyciskiem myszy (Windows) lub Ctrl — kliknij funkcję (macOS),
HttpExample
a następnie wybierz polecenie Wykonaj funkcję teraz....W polu Wprowadź treść żądania zostanie wyświetlona wartość treści komunikatu
{ "name": "Azure" }
żądania . Naciśnij klawisz Enter, aby wysłać ten komunikat żądania do funkcji.Gdy funkcja jest wykonywana na platformie Azure i zwraca odpowiedź, w Visual Studio Code jest zgłaszane powiadomienie.
Czyszczenie zasobów
Gdy przejdziesz do następnego kroku i dodasz powiązanie kolejki usługi Azure Storage do funkcji, musisz zachować wszystkie zasoby, aby budować to, co zostało już zrobione.
W przeciwnym razie możesz użyć poniższych kroków, aby usunąć aplikację funkcji i jej powiązane zasoby, aby uniknąć ponoszenia dodatkowych kosztów.
W Visual Studio Code naciśnij klawisz F1, aby otworzyć paletę poleceń. W palecie poleceń wyszukaj i wybierz pozycję
Azure: Open in portal
.Wybierz aplikację funkcji i naciśnij klawisz Enter. Strona aplikacji funkcji zostanie otwarta w Azure Portal.
Na karcie Przegląd wybierz nazwany link obok pozycji Grupa zasobów.
Na stronie Grupa zasobów przejrzyj listę uwzględnionych zasobów i sprawdź, czy są to te, które chcesz usunąć.
Wybierz pozycję Usuń grupę zasobów, a następnie postępuj zgodnie z instrukcjami.
Usuwanie może potrwać kilka minut. Po jego zakończeniu przez kilka sekund będzie widoczne powiadomienie. Możesz również wybrać ikonę dzwonka w górnej części strony, aby wyświetlić powiadomienie.
Aby uzyskać więcej informacji na temat kosztów usługi Functions, zobacz Szacowanie kosztów planu zużycia.
Następne kroki
Użyto Visual Studio Code do utworzenia aplikacji funkcji z prostą funkcją wyzwalaną przez protokół HTTP. W następnym artykule rozszerzysz tę funkcję, łącząc się z usługą Azure Storage. Aby dowiedzieć się więcej na temat nawiązywania połączenia z innymi usługami platformy Azure, zobacz Dodawanie powiązań do istniejącej funkcji w Azure Functions.