
W listopadzie wygłosiłem wykład na Live! 360 na temat tworzenia podstawowego konsumenta webhooków przy użyciu Azure Functions. Ten post na blogu podsumuje ten wykład i uprości kwestie, tak abyś mógł zrozumieć podstawy Azure Functions.
Interfejs webhook funkcji Azure
W listopadzie, I gave a talk at Live! 360 na temat tworzenia podstawowego konsumenta webhooków przy użyciu Azure Functions. Ten post na blogu podsumuje tamto wystąpienie i wyodrębni rzeczy tak, abyście zrozumieli podstawy Azure Function, i rozszerzą framework solution found on Github.
Czym są Webhooki?
Dlaczego serverless functions?
Serwerless functions to świetna innowacja pomagająca szybko wdrażać rozwiązania przy jednoczesnym zmniejszeniu obciążeń dla organizacji. Brak sprzętu do utrzymania to ogromna korzyść, a serwerless functions są w stanie obsługiwać nieprzewidywalne przepływy ruchu. Są łatwe do wdrożenia i aktualizacji, więc można szybko zacząć działać.
Synergia!
Kombinacja webhooków i funkcji bezserwerowych umożliwia bardzo łatwe tworzenie bogatych ekosystemów do automatyzacji lub interakcji z użytkownikiem. Możliwość korzystania ze zdarzeń i danych generowanych przez te wszystkie różnorodne systemy eliminuje potrzebę skomplikowanego middleware, jednocześnie umożliwiając bardzo łatwe włączenie niestandardowego kodu i zdarzeń.
Azure Functions Basics
Azure Functions mogą być tworzone za pomocą Azure Console lub Visual Studio. Polecam wypróbowanie obu, aby zaznajomić się z tymi doświadczeniami. Jedną z zalet tworzenia czegoś w Azure Console jest to, że można pobrać wynikowy Azure Function jako plik rozwiązania Visual Studio. Visual Studio to to samo znane, silne środowisko IDE, które znasz i kochasz.
Obie metody mają swoje zalety. Konsola Azure Function daje bezpośredni dostęp do kontroli parametrów działania funkcji, od dostępnych zasobów po miesięczne limity zużycia w celu kontroli kosztów. Wszystkie te opcje można ustawić i manipulować nimi z poziomu Visual Studio poprzez plik host.json i zmienne środowiskowe.
Tworzenie Basic Webhook Consumer
Krok 1
Utwórz nowe rozwiązanie Visual Studio i dodaj do tego rozwiązania Nowy Projekt.

Krok 2
Kliknij prawym przyciskiem myszy węzeł projektu i dodaj Nowy Element. Wybierz Azure Function.

Krok 3
Teraz masz bardzo znajomy projekt Visual Studio. Powinieneś mieć szablon dla podstawowej C# Azure Function. Czas napisać trochę kodu, aby wykorzystać swój webhook.

Krok 4
Debuguj lokalnie. To prawda, możesz debugować to lokalnie, używając wszystkich znanych narzędzi do debugowania i introspekcji Visual Studio. Zwróć uwagę na konsolę debugowania, ponieważ zawiera wiele cennych informacji o każdym wywołaniu, które wykonujesz podczas lokalnych testów.

Krok 5
Opublikuj Azure Function. Kliknij prawym przyciskiem myszy węzeł projektu i wybierz Opublikuj. Wybierz Azure Function i utwórz nowe. Zauważ, że możesz również zaktualizować istniejącą funkcję. Funkcja pojawi się teraz w Twojej konsoli Azure.

Potencjalne Pułapki
Najczęstszy błąd, który dotyka ludzi podczas pracy z konsumpcją webhooków i funkcjami bezserwerowymi, polega na tym, że funkcja działa zbyt długo. To albo powoduje, że funkcja staje się bardzo kosztowna albo całkowicie zawodzi, ponieważ webhook POST ulega czasowi oczekiwania. Istnieje kilka rzeczy, które możesz zrobić, aby załagodzić te problemy.
Konsumenci webhooków powinni działać asynchronicznie. Dane powinny być pobierane możliwie najszybciej, a następnie przetwarzane. Wspólnym błędem projektowym jest próba przetworzenia danych w czasie rzeczywistym, gdy dotychczas nadchodzą. To działa, o ile dane są spójne i mają mały rozmiar, ale jeśli rozmiar danych może się zwiększać lub być niespójny, najlepiej jest zapewnić, że dane są odbierane i odpowiedź HTTP jest wysyłana, aby uniknąć przekroczenia czasu.
Kolejną rzeczą, która może pomóc w ograniczeniu długotrwałych procesów, jest przechowywanie przesłanych danych i użycie funkcji bezserwerowej do uruchomienia procesu konteneryzacji za pomocą czegoś jak Azure Container Services (AKS) do obsługi długotrwałych części. Korzystając z tego projektu, funkcja bezserwerowa powinna uruchamiać i zapomnieć o kontenerze, pozwalając kontenerowi na przesłanie swoich wyników albo do dziennika, albo do innej usługi powiadamiania według twojego wyboru. Zapewnia to, że funkcja bezserwerowa jest możliwie jak najkrótsza, jednocześnie pozwalając na wykonywanie skomplikowanego przetwarzania.
Zapalmy tę świecę
Oto jest to. Teraz możesz iść naprzód i tworzyć własny bogaty ekosystem przy użyciu funkcji bezserwerowych i webhooków. Poniżej znajduje się lista innych zasobów, które pomogą Ci zgłębić Azure Functions.
-Nick Zimmerman
ps – poniżej znajdują się dodatkowe zasoby dotyczące Azure Functions, które mogą Cię zainteresować – miłej lektury!