W ramach usługi App Service jest kilka opcji. Nie będę dotykać Logic Apps ani Azure Automation, które również dotykają tego miejsca.
Azure WebJobs
Ten artykuł jest szczerze najlepszym wyjaśnieniem, ale podsumuję tutaj.
On Demand WebJobs aka. Zaplanowane WebJobs aka. Wyzwalane zadania internetowe
Wyzwalane zadania WebJob to zadania WebJob uruchamiane jednorazowo po wywołaniu adresu URL lub gdy właściwość schedule jest obecna w schedule.job . Zaplanowane zadania WebJobs to po prostu zadania WebJobs, dla których utworzono zadanie Azure Scheduler w celu wywołania naszego adresu URL zgodnie z harmonogramem, ale obsługujemy również właściwość harmonogramu, jak wspomniano wcześniej.
Podsumowanie:
+
Plik wykonywalny / skrypt na żądanie
+
Zaplanowane egzekucje
-
Muszę wywołać za pośrednictwem punktu końcowego .scm
-
Skalowanie jest ręczne
-
Maszyna wirtualna jest zawsze wymagana
Continuous WebJobs (non SDK)
Te prace trwają wiecznie, a my obudzimy je, gdy się zawieszą. Musisz włączyć opcję Zawsze włączone, aby działały, co oznacza uruchamianie ich w warstwie Podstawowa i nowszych.
Podsumowanie:
+
Plik wykonywalny / skrypt zawsze działa
-
Wymagane zawsze włączone - poziom podstawowy i wyższy
-
Maszyna wirtualna jest zawsze wymagana
Ciągłe zadania WebJobs za pomocą zestawu SDK zadań WebJobs
To nie jest nic z punktu widzenia „WebJobs funkcja”. Zasadniczo mamy ten słodki zestaw SDK, który napisaliśmy dla WebJobs, który umożliwia wykonywanie kodu w oparciu o proste wyzwalacze. Porozmawiam o tym później.
Podsumowanie:
+
Plik wykonywalny / skrypt zawsze działa
+
Bogatsze logowanie / pulpit nawigacyjny
+
Wyzwalacze obsługiwane wraz z długotrwałymi zadaniami
-
Wymagane zawsze włączone - poziom podstawowy i wyższy
-
Skalowanie jest konfigurowane ręcznie
-
Rozpoczęcie pracy może być trochę męczące
-
Maszyna wirtualna jest zawsze wymagana
Zestaw SDK Azure WebJobs
Azure WebJobs SDK to całkowicie oddzielny zestaw SDK z funkcji platformy WebJobs. Został zaprojektowany do uruchamiania w WebJob, ale naprawdę można go uruchomić wszędzie. Mamy klientów, którzy uruchamiają je w rolach roboczych, a nawet w chmurze stacjonarnej lub w innych chmurach, chociaż wsparcie to tylko najlepszy wysiłek.
SDK ma po prostu ułatwić uruchamianie kodu w reakcji na jakieś zdarzenie i tworzenie powiązań z usługami / itp. łatwo. Szczerze mówiąc, najlepiej jest to omówione w niektórych dokumentach , ale sednem tego jest natura „zdarzenia” + „kod”. Wykonaliśmy również kilka fajnych prac związanych z ekstensywnością, ale to jest drugorzędne w stosunku do podstawowego celu.
Podsumowanie:
- Większość z nich została wymieniona powyżej
+
Możesz przedłużyć i uruchomić, co chcesz. Pełna kontrola.
-
Rzeczy związane z HTTP są trochę dziwne, ale działają
Azure Functions
Azure Functions polega na wykorzystaniu tego podstawowego celu zestawu SDK WebJobs, hostowaniu go jako usługi i ułatwianiu rozpoczynania pracy z innymi językami. Przedstawiamy tutaj również koncepcję „bezserwerowego”, ponieważ miało to duży sens - wiemy, jak skaluje się nasze SDK, więc możemy robić za Ciebie inteligentne rzeczy.
Azure Functions to bardzo mocno zarządzane środowisko. Nie wspieramy przyprowadzania własnego hosta. Obecnie nie obsługujemy rozszerzeń niestandardowych, ale właśnie to badamy. Zastanawiamy się, co możesz, a czego nie możesz zrobić, ale rzeczy, które umożliwiamy, są sprytne i łatwe w obsłudze i zarządzaniu.
Jednak większość „frameworkowych” rzeczy, które zrobiliśmy w celu ulepszenia funkcji, przechodzi przez pakiet SDK WebJobs. Na przykład będziemy przekazywać nowy pakiet NuGet dla zadań WebJobs, który naprawdę drastycznie zwiększa szybkość rejestrowania, co daje ogromne korzyści w zakresie perf dla użytkowników zestawu SDK zadań WebJobs. W funkcjach wysyłkowych, takich jak „WebJobs SDK jako usługa”, naprawdę poprawiliśmy wiele problemów związanych z obsługą.
Prawdopodobnie jestem stronniczy, ponieważ Functions jest naszym najnowszym i najlepszym, ale nie krępuj się strzelać więcej wad dla funkcji na swój sposób.
Prawdopodobnie skończę na opublikowaniu bloga, który omawia nieco więcej, ale starałem się, aby to było jak najbardziej zwięzłe na tym forum.