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:

  • 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.

  1. 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.

    Zrzut ekranu przedstawiający tworzenie nowego okna projektu.

  2. 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.

  1. 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.
  2. 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.

  1. 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.
  2. Visual Studio Code używa podanych informacji i generuje projekt Azure Functions.

  3. Otwórz wygenerowany function_app.py plik projektu zawierający funkcje.

  4. Usuń znaczniki komentarza test_function z funkcji, która jest funkcją wyzwalaną przez protokół HTTP.

  5. 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
            ) 
    
  6. 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

  1. W Visual Studio Code naciśnij klawisz F1, aby otworzyć paletę poleceń. W palecie poleceń wyszukaj i wybierz pozycję Azurite: Start.

  2. 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.

  1. 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.

    Zrzut ekranu przedstawiający dane wyjściowe programu VS Code funkcji lokalnej.

    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.

  2. 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....

    Wykonaj funkcję teraz z poziomu Visual Studio Code

  3. 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.

  4. 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 .

  5. 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.

  1. 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....

    Zrzut ekranu przedstawiający okno logowania do platformy Azure w programie VS Code.

    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....

  2. 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.

  3. 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.

  1. 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 .

    Tworzenie zasobu w subskrypcji platformy Azure

  2. 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 .

    Dziennik tworzenia zasobów platformy Azure

  3. 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.

  1. Wybierz ikonę platformy Azure na pasku działań, a następnie w obszarze Obszar roboczy wybierz folder projektu i wybierz przycisk Wdróż... .

    Wdrażanie projektu z obszaru roboczego Visual Studio Code

  2. Wybierz pozycję Wdróż w aplikacji funkcji..., wybierz właśnie utworzoną aplikację funkcji, a następnie wybierz pozycję Wdróż.

  3. 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.

    Zrzut ekranu przedstawiający okno Wyświetl dane wyjściowe.

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.

  1. W Visual Studio Code naciśnij klawisz F1, aby otworzyć paletę poleceń. W palecie poleceń wyszukaj i wybierz pozycję Azure Functions: Add New Setting....

  2. Wybierz nową aplikację funkcji, wpisz AzureWebJobsFeatureFlags nazwę nowego ustawienia aplikacji i naciśnij klawisz Enter.

  3. 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

  1. 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....

    Zrzut ekranu przedstawiający wykonywanie funkcji na platformie Azure z Visual Studio Code.

  2. 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.

  3. 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.

  1. W Visual Studio Code naciśnij klawisz F1, aby otworzyć paletę poleceń. W palecie poleceń wyszukaj i wybierz pozycję Azure: Open in portal.

  2. Wybierz aplikację funkcji i naciśnij klawisz Enter. Strona aplikacji funkcji zostanie otwarta w Azure Portal.

  3. Na karcie Przegląd wybierz nazwany link obok pozycji Grupa zasobów.

    Zrzut ekranu przedstawiający wybieranie grupy zasobów do usunięcia ze strony aplikacji funkcji.

  4. Na stronie Grupa zasobów przejrzyj listę uwzględnionych zasobów i sprawdź, czy są to te, które chcesz usunąć.

  5. 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.

Masz problemy? Daj nam znać.