Tworzenie i uruchamianie funkcji usługi Azure Functions lokalnie przy użyciu narzędzi Core Tools

Ukończone

Narzędzia Azure Functions Core Tools umożliwiają opracowywanie i uruchamianie funkcji na komputerze lokalnym z poziomu wiersza polecenia.

Chcesz utworzyć pierwszą funkcję, prosty kalkulator zainteresowań, lokalnie na własnym komputerze, a nie w edytorze funkcji witryny Azure Portal. Nie masz pewności, czy chcesz użyć środowiska programistycznego, takiego jak Visual Studio lub Visual Studio Code, które można rozszerzyć w celu bezpośredniej obsługi usługi Azure Functions. Ostatecznie decydujesz się na użycie narzędzi Core Tools z wiersza polecenia i podstawowego edytora tekstów.

W tej lekcji dowiesz się, jak używać narzędzi Core Tools do tworzenia i uruchamiania funkcji lokalnie. Dowiedzmy się więcej o narzędziach Core Tools przed użyciem ich w ćwiczeniu w następnej lekcji, która przeprowadzi Cię przez te pojęcia przy użyciu usługi Azure Cloud Shell.

Co to są narzędzia Azure Functions Core Tools?

Narzędzia Azure Functions Core Tools to autonomiczne środowisko uruchomieniowe wraz z zestawem narzędzi wiersza polecenia, których można użyć do tworzenia, uruchamiania i wdrażania kodu funkcji z komputera lokalnego.

Narzędzia Core Tools obsługują kilka funkcji związanych z funkcjami, w tym:

  • Wygeneruj pliki i foldery potrzebne do lokalnego opracowywania funkcji.
  • Podaj lokalne środowisko uruchomieniowe, aby można było testować i debugować funkcje na komputerze.
  • Publikowanie funkcji na platformie Azure.

Za pomocą narzędzi Core Tools można wykonać te zadania z poziomu wiersza polecenia. Użyj dowolnego edytora tekstów, który chcesz napisać kod i zmodyfikować konfigurację. Potrzebujesz również interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell, aby zalogować się na platformie Azure, utworzyć zasoby platformy Azure i wdrożyć pliki projektu.

Narzędzia Core Tools są pakowane jako jedno narzędzie wiersza polecenia o nazwie func. Jeśli uruchamiasz polecenie func z poziomu wiersza polecenia bez żadnych innych poleceń, wyświetla informacje o wersji i przewodnik użycia. Nie musisz go teraz czytać, a wygląda on tak:

A portion of the help text output by func.

Zarówno program Visual Studio, jak i program Visual Studio Code używają narzędzi Core Tools do zapewnienia zintegrowanego lokalnego środowiska debugowania.

Poniżej przedstawiono kilka podstawowych pojęć dotyczących funkcji.

Aplikacje funkcji i projekty funkcji

Podczas lokalnego opracowywania funkcji pracujesz w projekcie funkcji. Projekt jest folderem zawierającym kod i pliki konfiguracji definiujące funkcje. Ten projekt kodu jest wdrażany w zasobie aplikacji funkcji na platformie Azure. W wystąpieniu aplikacji funkcji wszystkie funkcje mają wspólny zestaw wartości konfiguracji i zasobów.

Każda aplikacja funkcji jest przeznaczona dla określonego stosu językowego, a każdy stos ma własne wymagania dotyczące projektu specyficzne dla języka. Na szczęście nigdy nie trzeba tworzyć projektu funkcji samodzielnie. Narzędzia Core Tools umożliwiają generowanie projektów funkcji i funkcji od podstaw w żądanym języku.

Wersje narzędzi Core Tools

Ponieważ narzędzia Core Tools obejmują środowisko uruchomieniowe usługi Azure Functions, główna wersja używanych narzędzi Core Tools musi być zawsze zgodna z główną wersją środowiska uruchomieniowego usługi Functions na platformie Azure. Obecnie wersja 4.x jest zalecaną wersją środowiska uruchomieniowego usługi Functions i jedyną wersją, która obsługuje wszystkie języki. Chociaż w tym samouczku omówiono i używasz narzędzi Core Tools w wersji 4.x, nie musisz instalować żadnych elementów na własnym komputerze. W tym samouczku zamiast tego użyjesz narzędzi Core Tools w środowisku usługi Azure Cloud Shell w przeglądarce. Usługa Cloud Shell ma już poprawne wersje narzędzi Core Tools, interfejsu wiersza polecenia platformy Azure i Node.js wraz z już zainstalowanym edytorem kodu.

Programowanie lokalne a programowanie w witrynie Azure Portal

Witryna Azure Portal udostępnia wbudowany edytor kodu funkcji, ale można go używać tylko dla określonych stosów języków. Nie można również użyć portalu do edytowania funkcji opracowywanych lokalnie i wdrażanych na platformie Azure. Po rozpoczęciu korzystania z dowolnego lokalnego przepływu pracy tworzenia aplikacji nie można użyć witryny Azure Portal, aby wprowadzić zmiany w kodzie funkcji.

Narzędzia Core Tools obsługują programowanie lokalne dla wszystkich stosów języków obsługiwanych przez usługę Azure Functions.

Lokalne tworzenie funkcji

Poniżej przedstawiono bliżej sposób tworzenia funkcji za pomocą narzędzi Core Tools i uruchamiania ich lokalnie. Dowiedz się, jak opublikować na platformie Azure w dalszej części tego samouczka.

Tworzenie nowego projektu funkcji za pomocą polecenia func init

Aby utworzyć nowy projekt funkcji, uruchom polecenie func init w wierszu polecenia.

Output from func init creating a JavaScript function project.

func init Pyta, którego środowiska uruchomieniowego języka należy użyć dla aplikacji. Odpowiednio dostosowuje zawartość folderu projektu.

Podczas tworzenia nowego projektu funkcji pliki zawarte w folderze projektu zależą od wybranego środowiska uruchomieniowego języka. Niezależnie od wybranego środowiska uruchomieniowego, dwa najbardziej krytyczne pliki projektu są zawsze obecne:

  • Plik host.json przechowuje wartości konfiguracji środowiska uruchomieniowego, takie jak opcje rejestrowania, dla aplikacji funkcji. Ustawienia przechowywane w tym pliku są używane zarówno podczas uruchamiania funkcji lokalnie, jak i na platformie Azure.
  • local.settings.json przechowuje wartości konfiguracji, które mają zastosowanie tylko do aplikacji funkcji, gdy są uruchamiane lokalnie za pomocą narzędzi Core Tools. Ten plik zawiera dwa rodzaje ustawień:
    • Ustawienia lokalnego środowiska uruchomieniowego: służy do konfigurowania samego środowiska uruchomieniowego funkcji lokalnych.
    • Niestandardowe ustawienia aplikacji: dodasz je i skonfigurujesz na podstawie potrzeb aplikacji. Wszystkie funkcje w aplikacji mogą uzyskiwać dostęp do nich i używać ich.

Projekty funkcji, które są generowane przez polecenie func init, nie zawierają żadnych funkcji. W następnej sekcji dowiesz się, jak je dodać.

Tworzenie nowej funkcji za pomocą polecenia func new

Każda pojedyncza funkcja w projekcie wymaga kodu i konfiguracji w celu zdefiniowania jego zachowania. Uruchomienie func new w folderze projektu funkcji powoduje utworzenie nowej funkcji i wszystkich plików, które należy rozpocząć tworzenie.

Output from func new creating a JavaScript function.

Po zapytaniu o rodzaj wyzwalacza funkcji, którego chcesz użyć, oraz nazwę funkcji, func new wygeneruje kompletną, gotową do opublikowania implementację startową w wybranym języku projektu funkcji. Kod początkowy ilustruje sposób użycia wybranego typu wyzwalacza i jest dostępny, aby ułatwić szybkie rozpoczęcie pracy. Zastąp treść funkcji własną implementacją i możesz przystąpić do kompilowania, uruchamiania, testowania i publikowania.

W następnej części tego samouczka utworzysz func new funkcję wyzwalaną przez protokół HTTP i zmodyfikujesz implementację startową, aby wykonać proste obliczenie odsetek.

Uruchamianie funkcji lokalnie

Funkcje nie są programami, które można uruchamiać samodzielnie. Muszą być hostowane. Host usługi Azure Functions obsługuje wszystko poza kodem funkcji: ładuje konfigurację, nasłuchuje wyzwalaczy i żądań HTTP, uruchamia proces roboczy dla języka, w jakim są zapisywane funkcje, zapisuje dane wyjściowe dziennika i nie tylko. Na platformie Azure aplikacje funkcji uruchamiają host automatycznie po uruchomieniu.

Narzędzia Core Tools umożliwiają uruchamianie własnego wystąpienia hosta usługi Azure Functions i wypróbowanie funkcji lokalnie przed ich opublikowaniem. Uruchamiając funkcje przed ich opublikowaniem, możesz upewnić się, że konfiguracja i kod są ładowane poprawnie. Możesz także przetestować funkcje, wykonując rzeczywiste wywołania HTTP bez potrzeby angażowania zasobów platformy Azure.

Aby uruchomić hosta funkcji lokalnie, uruchom polecenie func start z poziomu folderu projektu funkcji. Na końcu danych wyjściowych narzędzia Core Tools wyświetlają lokalne adresy URL, których można użyć do wywoływania poszczególnych funkcji. Gdy host jest uruchomiony, możesz używać dowolnych narzędzi i bibliotek, które wykonują wywołania HTTP, takich jak narzędzie curl, aby wchodzić w interakcje z funkcjami. Narzędzia Core Tools zapisują wszystkie dane wyjściowe dziennika wygenerowane przez hosta do terminalu w czasie rzeczywistym.

func start output showing a function invocation URL.