Szybki start: tworzenie pierwszej funkcji języka C# na platformie Azure przy użyciu programu Visual Studio

Azure Functions umożliwia tworzenie lokalnych projektów funkcji języka C#, a następnie łatwe publikowanie tego projektu w skalowalnym środowisku bezserwerowym na platformie Azure. Jeśli wolisz opracowywać aplikacje języka C# lokalnie przy użyciu Visual Studio Code, należy rozważyć Visual Studio Code opartą na tym artykule wersję.

Domyślnie w tym artykule pokazano, jak utworzyć funkcje języka C# uruchamiane na platformie .NET 6 w tym samym procesie co host usługi Functions. Te funkcje w procesie języka C# są obsługiwane tylko w wersjach platformy .NET z obsługą długoterminową (LTS), takich jak .NET 6. Podczas tworzenia projektu możesz zamiast tego utworzyć funkcję uruchamianą na platformie .NET 6 w izolowanym procesie roboczym. Proces izolowany proces roboczy obsługuje zarówno wersje LTS, jak i Standard Term Support (STS) platformy .NET. Aby uzyskać więcej informacji, zobacz Obsługiwane wersje w przewodniku procesów roboczych izolowanych funkcji platformy .NET.

W tym artykule omówiono sposób wykonywania następujących zadań:

  • Użyj programu Visual Studio, aby utworzyć projekt biblioteki klas języka C#.
  • Utwórz funkcję, która odpowiada na żądania HTTP.
  • Uruchom kod lokalnie, aby zweryfikować zachowanie funkcji.
  • Wdróż projekt kodu w Azure Functions.

Ukończenie tego przewodnika Szybki start wiąże się z niewielkimi kosztami w wysokości kilku centów usd lub mniej na koncie platformy Azure.

Wymagania wstępne

Tworzenie projektu aplikacji funkcji

Szablon projektu Azure Functions w programie Visual Studio tworzy projekt biblioteki klas języka C#, który można opublikować w aplikacji funkcji na platformie Azure. Za pomocą aplikacji funkcji można grupować funkcje jako jednostkę logiczną, aby ułatwić zarządzanie, wdrażanie, skalowanie i udostępnianie zasobów.

  1. W menu programu Visual Studio wybierz pozycję Plik>nowy>projekt.

  2. W obszarze Tworzenie nowego projektu wprowadź funkcje w polu wyszukiwania, wybierz szablon Azure Functions, a następnie wybierz przycisk Dalej.

  3. W obszarze Konfigurowanie nowego projektu wprowadź nazwę projektu, a następnie wybierz przycisk Dalej. Nazwa aplikacji funkcji musi być prawidłową nazwą przestrzeni nazw C#, dlatego nie należy używać znaków podkreślenia, łączników ani znaków innych niż alfanumeryczne.

  4. W obszarze Dodatkowe informacje wybierz jedną z następujących opcji procesu roboczego usługi Functions:

    Środowisko uruchomieniowe platformy .NET Model procesów Opis
    .NET 6.0 (długoterminowa pomoc techniczna) Wewnątrz procesu Proces Funkcje języka C# są obsługiwane tylko w wersjach platformy .NET z obsługą długoterminową (LTS ). Kod funkcji jest uruchamiany w tym samym procesie co host usługi Functions.
    Izolowana platforma .NET 6.0 (długoterminowa obsługa) Proces izolowanego procesu roboczego Funkcje działają na platformie .NET 6, ale w osobnym procesie od hosta usługi Functions.
    Izolowany program .NET 7.0 Proces izolowanego procesu roboczego Ponieważ platforma .NET 7 nie jest wersją LTS platformy .NET, funkcje muszą działać w izolowanym procesie na platformie .NET 7.
    .NET Framework izolowana wersja 4 Proces izolowanego procesu roboczego Wybierz tę opcję, gdy funkcje muszą używać bibliotek obsługiwanych tylko w .NET Framework.
    .NET Core 3.1 (długoterminowa obsługa) Wewnątrz procesu Platforma .NET Core 3.1 nie jest już obsługiwaną wersją platformy .NET i nie jest obsługiwana przez funkcję w wersji 4.x. Zamiast tego należy użyć platformy .NET 6.0.
    .NET Framework v1 Wewnątrz procesu Wybierz tę opcję, gdy funkcje muszą używać bibliotek obsługiwanych tylko w starszych wersjach .NET Framework. Wymaga wersji 1.x środowiska uruchomieniowego usługi Functions.

    Dwa modele procesów używają różnych interfejsów API, a każdy model przetwarzania używa innego szablonu podczas generowania kodu projektu funkcji. Jeśli nie widzisz opcji dla platformy .NET 6.0 i nowszych wersji środowiska uruchomieniowego platformy .NET, może być konieczne zaktualizowanie instalacji narzędzi Azure Functions.

  5. W przypadku pozostałych ustawień dodatkowych informacji użyj wartości w poniższej tabeli:

    Ustawienie Wartość Opis
    Funkcja Wyzwalacz HTTP Ta wartość tworzy funkcję wyzwalaną przez żądanie HTTP.
    Używanie usługi Azurite na potrzeby konta magazynu środowiska uruchomieniowego (AzureWebJobsStorage) Włącz Ponieważ aplikacja funkcji na platformie Azure wymaga konta magazynu, jest on przypisany lub tworzony podczas publikowania projektu na platformie Azure. Wyzwalacz HTTP nie używa parametrów połączenia konta usługi Azure Storage; wszystkie inne typy wyzwalaczy wymagają prawidłowych parametrów połączenia konta usługi Azure Storage. Po wybraniu tej opcji jest używany emulator Azurite .
    Poziom autoryzacji Anonimowe Utworzona funkcja może zostać wyzwolona przez dowolnego klienta bez podawania klucza. To ustawienie autoryzacji ułatwia testowanie nowej funkcji. Aby uzyskać więcej informacji na temat kluczy i autoryzacji, zobacz Klucze autoryzacji oraz powiązania protokołu HTTP i elementu webhook.

    Zrzut ekranu przedstawiający ustawienia projektu Azure Functions.

    Upewnij się, że ustawiono poziom autoryzacji na Anonimowy. Jeśli wybierzesz domyślny poziom funkcji, musisz przedstawić klucz funkcji w żądaniach dostępu do punktu końcowego funkcji na platformie Azure.

  6. Wybierz pozycję Utwórz, aby utworzyć projekt funkcji i funkcję wyzwalacza HTTP.

Program Visual Studio tworzy projekt i klasę zawierającą kod kociołowy dla typu funkcji wyzwalacza HTTP. Standardowy kod wysyła odpowiedź HTTP zawierającą wartość z treści żądania lub ciągu zapytania. Atrybut HttpTrigger określa, że funkcja jest wyzwalana przez żądanie HTTP.

Zmienianie nazwy funkcji

Atrybut FunctionName metody ustawia nazwę funkcji, która domyślnie jest generowana jako Function1. Ponieważ narzędzia nie pozwalają zastąpić domyślnej nazwy funkcji podczas tworzenia projektu, poświęć minutę, aby utworzyć lepszą nazwę klasy funkcji, pliku i metadanych.

  1. W Eksplorator plików kliknij prawym przyciskiem myszy plik Function1.cs i zmień jego nazwę na HttpExample.cs.

  2. W kodzie zmień nazwę klasy Function1 na HttpExample.

  3. W metodzie o nazwie zmień nazwę atrybutu HttpTriggerFunctionName metody na HttpExample.Run

Definicja funkcji powinna teraz wyglądać podobnie do następującego kodu:

[FunctionName("HttpExample")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
    ILogger log)

Teraz, po zmianie nazwy funkcji, możesz ją przetestować na komputerze lokalnym.

Lokalne uruchamianie funkcji

Program Visual Studio integruje się z narzędziami Azure Functions Core Tools, dzięki czemu można testować funkcje lokalnie przy użyciu pełnego środowiska uruchomieniowego Azure Functions.

  1. Aby uruchomić funkcję, naciśnij klawisz F5 w programie Visual Studio. Może być konieczne włączenie wyjątku zapory, aby narzędzia mogły obsługiwać żądania HTTP. Poziomy autoryzacji nigdy nie są wymuszane podczas lokalnego uruchamiania funkcji.

  2. Skopiuj adres URL funkcji z danych wyjściowych środowiska uruchomieniowego usługi Azure Functions.

    Lokalne środowisko uruchomieniowe platformy Azure

  3. Wklej adres URL żądania HTTP w pasku adresu przeglądarki. Dołącz ciąg ?name=<YOUR_NAME> zapytania do tego adresu URL i uruchom żądanie. Na poniższej ilustracji przedstawiono odpowiedź w przeglądarce do lokalnego żądania GET zwróconego przez funkcję:

    Odpowiedź hosta localhost funkcji wyświetlona w przeglądarce

  4. Aby zatrzymać debugowanie, naciśnij klawisze Shift+F5 w programie Visual Studio.

Gdy będziesz mieć pewność, że funkcja działa poprawnie na komputerze lokalnym, możesz opublikować projekt na platformie Azure.

Publikowanie projektu na platformie Azure

Program Visual Studio może opublikować projekt lokalny na platformie Azure. Aby móc opublikować projekt, musisz mieć aplikację funkcji w subskrypcji platformy Azure. Jeśli nie masz jeszcze aplikacji funkcji na platformie Azure, publikowanie w programie Visual Studio powoduje utworzenie aplikacji po raz pierwszy podczas publikowania projektu. W tym artykule utworzysz aplikację funkcji i powiązane zasoby platformy Azure.

  1. W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy projekt i wybierz polecenie Opublikuj. W obszarze Cel wybierz pozycję Azure , a następnie pozycję Dalej.

    Zrzut ekranu przedstawiający okno publikowania.

  2. Wybierz pozycję Aplikacja funkcji platformy Azure (Windows) dla określonego elementu docelowego, która tworzy aplikację funkcji działającą w systemie Windows, a następnie wybierz przycisk Dalej.

    Zrzut ekranu przedstawiający okno publikowania z określonym elementem docelowym.

  3. W wystąpieniu funkcji wybierz pozycję Utwórz nową funkcję platformy Azure...

    Zrzut ekranu przedstawiający tworzenie nowego wystąpienia aplikacji funkcji.

  4. Utwórz nowe wystąpienie przy użyciu wartości określonych w poniższej tabeli:

    Ustawienie Wartość Opis
    Nazwa Nazwa unikatowa w skali globalnej Unikatowa nazwa identyfikująca nową aplikację funkcji. Zaakceptuj tę nazwę lub wprowadź nową nazwę. Prawidłowe znaki to: a-z, 0-9i -.
    Subskrypcja Twoja subskrypcja Subskrypcja platformy Azure, która ma być używana. Zaakceptuj tę subskrypcję lub wybierz nową z listy rozwijanej.
    Grupa zasobów Nazwa grupy zasobów Grupa zasobów, w której chcesz utworzyć aplikację funkcji. Wybierz istniejącą grupę zasobów z listy rozwijanej lub wybierz pozycję Nowy , aby utworzyć nową grupę zasobów.
    Typ planu Zużycie Podczas publikowania projektu w aplikacji funkcji uruchamianej w planie Zużycie płacisz tylko za wykonania aplikacji funkcji. Inne plany hostingu generują wyższe koszty.
    Lokalizacja Lokalizacja usługi App Service Wybierz lokalizację w regionie w pobliżu Ciebie lub innych usług, do których uzyskujesz dostęp do funkcji.
    Azure Storage Konto magazynu ogólnego przeznaczenia Środowisko uruchomieniowe usługi Functions wymaga konta magazynu platformy Azure. Wybierz pozycję Nowy , aby skonfigurować konto magazynu ogólnego przeznaczenia. Możesz również wybrać istniejące konto spełniające wymagania dotyczące konta magazynu.

    Zrzut ekranu przedstawiający okno dialogowe Tworzenie App Service.

  5. Wybierz pozycję Utwórz , aby utworzyć aplikację funkcji i powiązane z nią zasoby na platformie Azure. Stan tworzenia zasobów jest wyświetlany w lewym dolnym rogu okna.

  6. W wystąpieniu usługi Functions upewnij się, że pole wyboru Uruchom z pliku pakietu jest zaznaczone. Aplikacja funkcji jest wdrażana przy użyciu narzędzia Zip Deploy z włączonym trybem Run-From-Package . Zip Deploy to zalecana metoda wdrażania dla projektu funkcji, co zapewnia lepszą wydajność.

    Zrzut ekranu przedstawiający kończenie tworzenia profilu.

  7. Wybierz pozycję Zakończ, a na stronie Publikowanie wybierz pozycję Publikuj , aby wdrożyć pakiet zawierający pliki projektu w nowej aplikacji funkcji na platformie Azure.

    Po zakończeniu wdrażania główny adres URL aplikacji funkcji na platformie Azure jest wyświetlany na karcie Publikowanie .

  8. Na karcie Publikowanie w sekcji Hosting wybierz pozycję Otwórz w Azure Portal. Spowoduje to otwarcie nowego zasobu platformy Azure aplikacji funkcji w Azure Portal.

    Zrzut ekranu przedstawiający komunikat o powodzeniu publikowania.

Weryfikowanie funkcji na platformie Azure

  1. W eksploratorze chmury należy wybrać nową aplikację funkcji. W przeciwnym razie rozwiń subskrypcję >usługi App Services i wybierz nową aplikację funkcji.

  2. Kliknij prawym przyciskiem myszy aplikację funkcji i wybierz polecenie Otwórz w przeglądarce. Spowoduje to otwarcie katalogu głównego aplikacji funkcji w domyślnej przeglądarce internetowej i wyświetlenie strony wskazującej, że aplikacja funkcji jest uruchomiona.

    Uruchomiona aplikacja funkcji

  3. Na pasku adresu w przeglądarce dołącz ciąg /api/HttpExample?name=Functions do podstawowego adresu URL i uruchom żądanie.

    Adres URL, który wywołuje funkcję wyzwalacza HTTP, ma następujący format:

    http://<APP_NAME>.azurewebsites.net/api/HttpExample?name=Functions

  4. Przejdź do tego adresu URL i w przeglądarce zostanie wyświetlona odpowiedź na zdalne żądanie GET zwrócone przez funkcję, które wygląda podobnie do następującego przykładu:

    Odpowiedź funkcji wyświetlona w przeglądarce

Czyszczenie zasobów

Zasoby na platformie Azure dotyczą aplikacji funkcji, funkcji, kont magazynu i tak dalej. Są one grupowane w grupy zasobów i można usunąć wszystkie elementy w grupie, usuwając grupę.

Zasoby platformy Azure zostały utworzone w celu ukończenia tego przewodnika Szybki start. Za te zasoby może zostać naliczona opłata — zależy to od Twojego stanu konta i cennika usług. Inne przewodniki Szybki start w tej kolekcji bazują na tym przewodniku. Jeśli planujesz pracę z kolejnymi przewodnikami Szybki start, samouczkami lub dowolnymi usługami utworzonymi w tym przewodniku Szybki start, nie usuwaj zasobów.

Wykonaj poniższe kroki, aby usunąć aplikację funkcji i powiązane z nią zasoby, aby uniknąć ponoszenia dodatkowych kosztów.

  1. W oknie dialogowym Publikowanie programu Visual Studio w sekcji Hosting wybierz pozycję Otwórz w Azure Portal.

  2. Na stronie aplikacji funkcji wybierz kartę Przegląd , a następnie wybierz link w obszarze Grupa zasobów.

    Wybierz grupę zasobów do usunięcia ze strony aplikacji funkcji

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

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

Następne kroki

W tym przewodniku Szybki start użyto programu Visual Studio do utworzenia i opublikowania aplikacji funkcji języka C# na platformie Azure przy użyciu prostej funkcji wyzwalacza HTTP.

Następny artykuł zależy od wybranego modelu procesu.

Aby dowiedzieć się więcej na temat pracy z funkcjami języka C#, które są uruchamiane na hoście usługi Functions, zobacz Develop C# class library functions using Azure Functions (Opracowywanie funkcji biblioteki klas języka C#przy użyciu Azure Functions).

Przejdź do następnego artykułu, aby dowiedzieć się, jak dodać powiązanie kolejki usługi Azure Storage do funkcji: