Szybki start: tworzenie funkcji Języka Go lub Rust na platformie Azure przy użyciu programu Visual Studio Code

W tym artykule użyjesz programu Visual Studio Code do utworzenia niestandardowej funkcji obsługi , która odpowiada na żądania HTTP. Po przetestowaniu kodu lokalnie należy wdrożyć go w środowisku bezserwerowym usługi Azure Functions.

Niestandardowe programy obsługi mogą służyć do tworzenia funkcji w dowolnym języku lub środowisku uruchomieniowym, uruchamiając proces serwera HTTP. Ten artykuł obsługuje zarówno język Go, jak i Rust.

Ukończenie tego przewodnika Szybki start wiąże się z naliczeniem niewielkiej opłaty w wysokości kilku centów USD lub mniej na koncie platformy Azure.

Konfigurowanie środowiska

Przed rozpoczęciem upewnij się, że zostały spełnione następujące wymagania:

Instalowanie lub aktualizowanie narzędzi Core Tools

Rozszerzenie usługi Azure Functions dla programu Visual Studio Code integruje się z narzędziami Azure Functions Core Tools, dzięki czemu można uruchamiać i debugować funkcje lokalnie w programie Visual Studio Code przy użyciu środowiska uruchomieniowego usługi Azure Functions. Przed rozpoczęciem warto zainstalować narzędzia Core Tools lokalnie lub zaktualizować istniejącą instalację, aby korzystać z najnowszej wersji.

W programie Visual Studio Code wybierz klawisz F1, aby otworzyć paletę poleceń, a następnie wyszukaj i uruchom polecenie Azure Functions: Install or Update Core Tools.

To polecenie uruchamia instalację opartą na pakietach najnowszej wersji narzędzi Core Tools.

Tworzenie projektu lokalnego

W tej sekcji użyjesz programu Visual Studio Code do utworzenia lokalnego projektu niestandardowych programów obsługi usługi Azure Functions. W dalszej części tego artykułu opublikujesz kod funkcji na platformie Azure.

  1. Wybierz ikonę platformy Azure na pasku działania. 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.

  3. Podaj następujące informacje po wyświetleniu monitów:

    Monit Wybór
    Wybieranie języka projektu funkcji Wybierz plik Custom Handler.
    Wybieranie szablonu dla pierwszej funkcji projektu Wybierz plik HTTP trigger.
    Podaj nazwę funkcji Wpisz HttpExample.
    Poziom autoryzacji Wybierz Anonymouspozycję , która umożliwia każdemu wywoływanie punktu końcowego funkcji. Aby dowiedzieć się więcej na temat poziomu autoryzacji, zobacz Klucze autoryzacji.
    Wybierz sposób otwierania projektu Wybierz plik Open in current window.

    Korzystając z tych informacji, program Visual Studio Code generuje projekt usługi Azure Functions z wyzwalaczem HTTP. Pliki lokalnego projektu można wyświetlić w Eksploratorze.

Tworzenie i tworzenie funkcji

Plik function.json w folderze HttpExample deklaruje funkcję wyzwalacza HTTP. Wykonasz tę funkcję, dodając procedurę obsługi i kompilując ją do pliku wykonywalnego.

  1. Naciśnij klawisze Ctrl + N (Cmd + N w systemie macOS), aby utworzyć nowy plik. Zapisz go jako plik handler.go w katalogu głównym aplikacji funkcji (w tym samym folderze co host.json).

  2. W pliku handler.go dodaj następujący kod i zapisz plik. Jest to niestandardowa procedura obsługi języka Go.

    package main
    
    import (
        "fmt"
        "log"
        "net/http"
        "os"
    )
    
    func helloHandler(w http.ResponseWriter, r *http.Request) {
        message := "This HTTP triggered function executed successfully. Pass a name in the query string for a personalized response.\n"
        name := r.URL.Query().Get("name")
        if name != "" {
            message = fmt.Sprintf("Hello, %s. This HTTP triggered function executed successfully.\n", name)
        }
        fmt.Fprint(w, message)
    }
    
    func main() {
        listenAddr := ":8080"
        if val, ok := os.LookupEnv("FUNCTIONS_CUSTOMHANDLER_PORT"); ok {
            listenAddr = ":" + val
        }
        http.HandleFunc("/api/HttpExample", helloHandler)
        log.Printf("About to listen on %s. Go to https://127.0.0.1%s/", listenAddr, listenAddr)
        log.Fatal(http.ListenAndServe(listenAddr, nil))
    }
    
  3. Naciśnij klawisze Ctrl + Shift + ' lub wybierz pozycję Nowy terminal z menu Terminal , aby otworzyć nowy zintegrowany terminal w programie VS Code.

  4. Skompiluj niestandardową procedurę obsługi przy użyciu następującego polecenia. Plik wykonywalny o nazwie handler (handler.exe w systemie Windows) jest danymi wyjściowymi w folderze głównym aplikacji funkcji.

    go build handler.go
    

    VS Code — tworzenie niestandardowej procedury obsługi języka Go

Konfigurowanie aplikacji funkcji

Host funkcji musi być skonfigurowany do uruchamiania niestandardowego pliku binarnego programu obsługi.

  1. Otwórz host.json.

  2. customHandler.description W sekcji ustaw wartość defaultExecutablePath na handler (w systemie Windows ustaw ją na wartość handler.exe).

  3. customHandler W sekcji dodaj właściwość o nazwie enableForwardingHttpRequest i ustaw jej wartość na true. W przypadku funkcji składających się tylko z wyzwalacza HTTP to ustawienie upraszcza programowanie, umożliwiając pracę z typowym żądaniem HTTP zamiast ładunku żądania niestandardowego programu obsługi.

  4. Upewnij się, customHandler że sekcja wygląda podobnie do tego przykładu. Zapisz plik.

    "customHandler": {
      "description": {
        "defaultExecutablePath": "handler",
        "workingDirectory": "",
        "arguments": []
      },
      "enableForwardingHttpRequest": true
    }
    

Aplikacja funkcji jest skonfigurowana do uruchamiania niestandardowego pliku wykonywalnego programu obsługi.

Lokalne uruchamianie funkcji

Ten projekt można uruchomić na lokalnym komputerze deweloperów przed opublikowaniem na platformie Azure.

  1. W zintegrowanym terminalu uruchom aplikację funkcji przy użyciu narzędzi Azure Functions Core Tools.

    func start
    
  2. Po uruchomieniu narzędzi Core Tools przejdź do następującego adresu URL, aby wykonać żądanie GET, które zawiera ?name=Functions ciąg zapytania.

    http://localhost:7071/api/HttpExample?name=Functions

  3. Zostanie zwrócona odpowiedź, która wygląda następująco w przeglądarce:

    Przeglądarka — przykładowe dane wyjściowe hosta lokalnego

  4. Informacje o żądaniu są wyświetlane na panelu terminalu .

    Uruchamianie hosta zadania — dane wyjściowe terminalu programu VS Code

  5. Naciśnij klawisze Ctrl + C , aby zatrzymać narzędzia Core Tools.

Po sprawdzeniu, czy funkcja działa poprawnie na komputerze lokalnym, nadszedł czas, aby opublikować projekt bezpośrednio na platformie Azure przy użyciu programu Visual Studio Code.

Logowanie się do platformy Azure

Aby można było utworzyć zasoby platformy Azure lub opublikować aplikację, musisz zalogować się na platformie Azure.

  1. Jeśli jeszcze nie zalogowałeś się, wybierz ikonę platformy Azure na pasku działania. 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 konto platformy Azure.... Uczniowie mogą wybrać pozycję Utwórz konto platformy Azure for Students....

  2. Po wyświetleniu monitu w przeglądarce wybierz swoje 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.

Kompilowanie niestandardowej procedury obsługi dla platformy Azure

W tej sekcji opublikujesz projekt na platformie Azure w aplikacji funkcji z systemem Linux. W większości przypadków należy ponownie skompilować dane binarne i dostosować konfigurację tak, aby była zgodna z platformą docelową przed opublikowaniem jej na platformie Azure.

  1. W zintegrowanym terminalu skompiluj program obsługi do systemu Linux/x64. Plik binarny o nazwie handler jest tworzony w katalogu głównym aplikacji funkcji.

    GOOS=linux GOARCH=amd64 go build handler.go
    

Tworzenie aplikacji funkcji na platformie Azure

W tej sekcji utworzysz aplikację funkcji i powiązane zasoby w ramach subskrypcji platformy Azure.

  1. Wybierz ikonę platformy Azure na pasku działania. 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ę, która ma zostać użyta. Ta opcja nie będzie widoczna, jeśli w obszarze Zasoby jest widoczna tylko jedna subskrypcja.
    Wprowadź globalnie unikatową nazwę aplikacji funkcji Wpisz nazwę prawidłową w ścieżce adresu URL. Typ nazwy jest weryfikowany, aby upewnić się, że jest on unikatowy w usłudze Azure Functions.
    Wybieranie stosu środowiska uruchomieniowego Wybierz pozycję Niestandardowa procedura obsługi.
    Wybieranie lokalizacji dla nowych zasobów Aby uzyskać lepszą wydajność, wybierz region blisko Ciebie.

    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 następujące zasoby platformy Azure są tworzone w ramach subskrypcji. Zasoby są nazwane na podstawie nazwy aplikacji funkcji:

    • Grupa zasobów, która jest kontenerem logicznym dla powiązanych zasobów.
    • Standardowe konto usługi Azure Storage, które zachowuje 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 usługi App Service, który definiuje podstawowy host aplikacji funkcji.
    • Wystąpienie aplikacji Szczegółowe informacje 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.

    Napiwek

    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. W obszarze Zasoby działania platformy Azure znajdź właśnie utworzony zasób aplikacji funkcji, kliknij prawym przyciskiem myszy zasób i wybierz polecenie Wdróż w aplikacji funkcji....

  2. Po wyświetleniu monitu o zastąpienie poprzednich wdrożeń wybierz pozycję Wdróż , aby wdrożyć kod funkcji w nowym zasobie aplikacji funkcji.

  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.

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 poziomu programu 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 programie 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 z funkcją, musisz zachować wszystkie zasoby na miejscu, aby opierać się na tym, co zostało już zrobione.

W przeciwnym razie możesz użyć poniższych kroków, aby usunąć aplikację funkcji i powiązane z nią zasoby, aby uniknąć ponoszenia dodatkowych kosztów.

  1. W programie 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 witrynie 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