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 tworzyć aplikacje w języku C# lokalnie przy użyciu Visual Studio Code, rozważ zamiast tego Visual Studio Code wersję tego artykułu.
Domyślnie w tym artykule pokazano, jak utworzyć funkcje języka C#, które są 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żna zamiast tego utworzyć funkcję działającą 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 lub mniej na koncie platformy Azure.
Wymagania wstępne
Visual Studio 2022. Pamiętaj, aby podczas instalacji wybrać obciążenie programowanie na platformie Azure .
Subskrypcja platformy Azure. Jeśli nie masz jeszcze konta, przed rozpoczęciem utwórz bezpłatne konto.
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.
W menu programu Visual Studio wybierz pozycję Plik>nowy>projekt.
W obszarze Tworzenie nowego projektu wprowadź funkcje w polu wyszukiwania, wybierz szablon Azure Functions, a następnie wybierz przycisk Dalej.
W obszarze Konfigurowanie nowego projektu wprowadź nazwę projektu , a następnie wybierz pozycję 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.
W obszarze Dodatkowe informacje wybierz jedną z następujących opcji dla procesu roboczego usługi Functions:
Opcja Wersja platformy .NET Model procesów Opis .NET 6.0 (długoterminowa pomoc techniczna) .NET 6 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) .NET 6 Izolowany proces roboczy Funkcje działają na platformie .NET 6, ale w osobnym procesie niż host usługi Functions. Izolowany program .NET 7.0 .NET 7 Izolowany proces roboczy Ponieważ platforma .NET 7 nie jest wersją LTS platformy .NET, funkcje muszą być uruchamiane w izolowanym procesie na platformie .NET 7. .NET Framework izolowana wersja 4 .NET Framework 4.8 Izolowany proces roboczy Wybierz tę opcję, jeśli funkcje muszą używać bibliotek obsługiwanych tylko w .NET Framework. .NET Core 3.1 (długoterminowa obsługa) .NET Core 3.1 Wewnątrz procesu Platforma .NET Core 3.1 nie jest już obsługiwaną wersją platformy .NET i nie jest obsługiwana przez usługę Functions w wersji 4.x. Zamiast tego użyj platformy .NET 6.0. .NET Framework v1 .NET Framework Wewnątrz procesu Wybierz tę opcję, jeśli 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 programu .NET 6.0 i nowszych wersji środowiska uruchomieniowego platformy .NET, może być konieczne zaktualizowanie instalacji narzędzi Azure Functions.
Dla pozostałych dodatkowych ustawień 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 dla konta magazynu środowiska uruchomieniowego (AzureWebJobsStorage) Włącz Ponieważ aplikacja funkcji na platformie Azure wymaga konta magazynu, jest on przypisywany 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 Authorization keys and HTTP and webhook bindings (Klucze autoryzacji oraz powiązania http i element webhook). Upewnij się, że ustawiono poziom autoryzacji na Anonimowy. Jeśli wybierzesz domyślny poziom funkcji, musisz przedstawić klucz funkcji w żądaniach uzyskania dostępu do punktu końcowego funkcji na platformie Azure.
Wybierz pozycję Utwórz , aby utworzyć projekt funkcji i funkcję wyzwalacza HTTP.
Program Visual Studio tworzy projekt i klasę zawierającą standardowy kod 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ę dla klasy funkcji, pliku i metadanych.
W Eksplorator plików kliknij prawym przyciskiem myszy plik Function1.cs i zmień jego nazwę na
HttpExample.cs
.W kodzie zmień nazwę klasy Function1 na
HttpExample
.W metodzie
HttpTrigger
o nazwieRun
zmień nazwę atrybutuFunctionName
metody naHttpExample
.
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, aby umożliwić lokalne testowanie funkcji przy użyciu pełnego środowiska uruchomieniowego Azure Functions.
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.
Skopiuj adres URL funkcji z danych wyjściowych środowiska uruchomieniowego usługi Azure Functions.
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 na lokalne żądanie GET zwrócone przez funkcję: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.
W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy projekt i wybierz polecenie Opublikuj. W obszarze Cel wybierz pozycję Azure , a następnie pozycję Dalej.
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.
W wystąpieniu funkcji wybierz pozycję Utwórz nową funkcję platformy Azure...
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-9
i-
.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. 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.
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ść.
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 .
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.
Weryfikowanie funkcji na platformie Azure
W eksploratorze chmury należy wybrać nową aplikację funkcji. W przeciwnym razie rozwiń subskrypcję >usługi App Services i wybierz nową aplikację funkcji.
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.
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
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:
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.
W oknie dialogowym Publikowanie programu Visual Studio w sekcji Hosting wybierz pozycję Otwórz w Azure Portal.
Na stronie aplikacji funkcji wybierz kartę Przegląd , a następnie wybierz link w obszarze 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.
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: