Azure Functions

Czym są Azure Functions?

Problem: potrzeba uruchomienia małego kawałka kodu, robiącego specyficzną rzecz, ale niekoniecznie pasującego do naszej aplikacji biznesowej i bez konieczności tworzenia całej aplikacji na potrzeby tej jednej funkcji

Rozwiązanie: Azure Functions - małe "funkcje" w chmurze, które można wdrażać niezależnie. Możemy napisać kod, który rozwiązuje nasz pojedynczy problem i to wdrożyć. 

Cechy

  • dowolność wyboru języka
    • nie tylko C#, F# ale i JS
  • płatność za użycie (pay-per-use)
  • własne zależności
    • NuGet ale i NPM
  • zintegrowane bezpieczeństwo
  • dowolność środowiska pracy
    • tworzenie za pomocą portalu, VS lub inne
  • Open-Source

Wyzwalacze

  • Nasza usługa aby rozpocząć pracę musi zostać wzbudzona. Istnieją różne rodzaje wyzwalaczy:
    • HTTPTrigger - żądanie HTTP
    • TimerTriger - określony czas
    • CosmosDBTrigger - uruchamiany, gdy dokument do bazy CosmosDB jest dodany/zmieniony
    • BlobTrigger - monitoruje Azure Storage
    • QueueTrigger - monitoruje kolejkę Azure Storage
    • EventGridTrigger - monitoruje zdarzenia dodane do Azure Event Grid
    • EventHubTrigger - monitoruje zdarzenia dodane do Azure Event Hub

Wyzwalacze

  • ServiceBusQueueTrigger - monitoruje zewnętrzne usługi poprzez kolejki wiadomości
  • ServiceBusTopicTrigger - monitoruje zewnnętrzne usługi poprzez tematy

Integracje

  • Azure Cosmos DB
  • Azure Event Hubs
  • Azure Event Grid
  • Azure Notification Hubs
  • Azure Service Bus (kolejki i tematy)
  • Azure Storage (blob, kolejki, i tabele)
  • On-premises (za pomocą Service Bus)
  • Twilio (SMS messages)

Wyzwalacze i integracje

  • wyzwalacz - coś co powoduje uruchomienie funkcji; funkcje może mieć tylko jeden wyzwalacz
  • integracja/binding - dodatkowe źródło danych dla funkcji; może być wejściem, wyjście dla funkcji lub być we/wy. Funkcje może mieć 1+ binding-ów różnego typu.

Azure Portal

  • za pomocą function.json

Visual Studio

  • za pomocą atrybutów

Konfiguracja

Consumption plan

Kiedy funkcja jest uruchamiana Azure dostarczy wszystkie niezbędne zasoby aby funkcja została uruchomiona. Nie trzeba martwić się o zasoby, i płacimy tylko za czas uruchomienia.

App Service

Funkcje działają jak normalne aplikacje. Jeśli mamy już działającą usługę App Service wtedy możemy uruchomić Azure Function bez dodatkowego kosztu.

Koszty

Azure Portal

  • tworzenie funkcji za pomocą Azure portalu i edytora dostępnego online; wciąż trzeba kodować, ale nie ma narzutu na potrzebę posiadania środowiska programistycznego

Visual Studio

  • pełny dostęp do możliwości Azure Functions z poziomu IDE; nie różni się to od pisania zwykłej aplikacji webowej i jej wdrożenia

Tworzenie

Diagnostyka

  • wbudowana w Application Insights
    • zapytania
    • Błędy
    • Wydajność
    • Metryki
    • Metryki na żywo
  • telemetria z zakładki Monitor
    • podstawowe dane

Durable functions

  • Zalety:
    • budowanie przepływów pracy (workflow)
    • umożliwia wołanie funkcji synchronicznie i asnychronicznie
    • stan jest zapamiętywany automatycznie
  • Jest to rozszerzenie do Azure Functions, które pozwala pisać stanowe obliczenia w świecie serverless

Azure Functions

By Pawel Lukasik

Azure Functions

  • 75