Użyj funkcji jako programu obsługi zdarzeń dla usługi Event Grid

Handler zdarzeń to miejsce, gdzie Azure Event Grid wysyła zdarzenie do przetwarzania. Azure automatycznie konfiguruje kilka usług do obsługi zdarzeń, a Azure Functions jest jedną z nich.

Gdy używasz funkcji jako obsługi zdarzeń, uruchamiasz niestandardowy kod odpowiadający na każde zdarzenie bez aranżacji czy zarządzania serwerami. Na przykład Event Grid może używać funkcji jako warstwy antykorupcyjnej , która transformuje lub waliduje zdarzenia przed przekazaniem ich do systemów poniżej.

Ten artykuł opisuje dwa sposoby wykorzystania funkcji jako obsługi zdarzeń oraz wyjaśnia, którą metodę zastosować.

Aby użyć funkcji na platformie Azure jako procedury obsługi zdarzeń, wykonaj jedną z następujących metod:

  • Użyj wyzwalacza Event Grid. Określ funkcję platformy Azure jako typ punktu końcowego. Następnie określ aplikację funkcjonalną oraz funkcję obsługującą zdarzenia.
  • Użyj wyzwalacza HTTP. Określ Web Hook jako typ punktu końcowego. Następnie określ adres URL funkcji, która obsługuje zdarzenia.

Użyj pierwszego podejścia (wyzwalacz Event Grid). Ma następujące zalety w porównaniu z drugim podejściem:

  • Usługa Event Grid automatycznie weryfikuje wyzwalacze usługi Event Grid. W przypadku ogólnych wyzwalaczy HTTP należy samodzielnie zaimplementować odpowiedź na walidację.
  • Event Grid automatycznie dostosowuje szybkość, z jaką dostarcza zdarzenia do funkcji, którą wywołuje zdarzenie Event Grid, na podstawie postrzeganego tempa, z jakim funkcja może przetwarzać zdarzenia. Ta funkcja dopasowywania tempa zapobiega błędom w dostarczaniu wynikającym z niemożności przetwarzania zdarzeń przez funkcję, ponieważ tempo przetwarzania zdarzeń przez funkcję może się zmieniać z czasem. Aby zwiększyć wydajność przy wysokiej przepływności, włącz przetwarzanie wsadowe w subskrypcji zdarzeń. Aby uzyskać więcej informacji, zobacz Włączanie dzielenia na partie.

Uwaga

  • Gdy używasz wyzwalacza Event Grid, aby dodać subskrypcję zdarzenia za pomocą funkcji Azure, Event Grid pobiera klucz dostępu do funkcji docelowej, korzystając z danych uwierzytelniających głównego dostawcy usługi Event Grid. Event Grid otrzymuje uprawnienia po zarejestrowaniu dostawcy zasobów Event Grid w swojej subskrypcji Azure.
  • Jeśli chronisz swoją funkcję Azure aplikacją Microsoft Entra ID, musisz zastosować ogólne podejście webhook z użyciem wyzwalacza HTTP. Użyj punktu końcowego funkcji platformy Azure jako adresu URL elementu webhook podczas dodawania subskrypcji.

Samouczki

Nazwa Opis
Szybki start: obsługa zdarzeń za pomocą funkcji Wysyła zdarzenie niestandardowe do funkcji do przetwarzania.
Samouczek: przesyłanie strumieniowe danych typu big data do magazynu danych Gdy centrum zdarzeń tworzy plik przechwytywania, usługa Event Grid wysyła zdarzenie do aplikacji funkcji. Aplikacja pobiera plik Capture i migruje dane do magazynu danych.
Samouczek: przykłady integracji usługi Azure Service Bus z usługą Azure Event Grid Event Grid wysyła wiadomości z tematu usługi Service Bus do aplikacji funkcyjnej oraz do aplikacji logicznej.

Przykład API REST

Poniższy przykład pokazuje ciało żądania dla operacji PUT, która tworzy subskrypcję zdarzeń z funkcją Azure jako handlerem zdarzeń. Ustawia ID zasobu funkcji docelowej i umożliwia grupowanie.

{
    "properties":
    {
        "destination":
        {
            "endpointType": "AzureFunction",
            "properties":
            {
                "resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.Web/sites/<FUNCTION APP NAME>/functions/<FUNCTION NAME>",
                "maxEventsPerBatch": 10,
                "preferredBatchSizeInKilobytes": 64
            }
        },
        "eventDeliverySchema": "EventGridSchema"
    }
}

Włącz przetwarzanie wsadowe

Aby zwiększyć przepustowość, włącz grupowanie w subskrypcji. Jeśli korzystasz z portalu Azure, możesz ustawić maksymalną liczbę zdarzeń na partię oraz preferowany rozmiar partii w kilobajtach podczas tworzenia subskrypcji lub później.

Konfiguruj ustawienia wsadowe, korzystając z portalu Azure, PowerShella, CLI lub szablonu Resource Manager.

Azure Portal

Po utworzeniu subskrypcji w portalu, na stronie Utwórz subskrypcję zdarzeń przejdź do zakładki Zaawansowane funkcje i ustaw wartości dla maksymalnej liczby zdarzeń na partię oraz preferowanego rozmiaru partii w kilobajtach.

Zrzut ekranu zakładki Zaawansowane Funkcje na stronie Utworzenie subskrypcji zdarzenia pokazujący ustawienia wsadowe.

Zaktualizuj te wartości dla istniejącej subskrypcji na karcie Funkcje na stronie Temat usługi Event Grid.

Zrzut ekranu zakładki Funkcje na stronie tematu Event Grid, pokazujący ustawienia wsadowe dla istniejącej subskrypcji.

Szablon usługi Azure Resource Manager

Ustaw maxEventsPerBatch i preferredBatchSizeInKilobytes w szablonie Azure Resource Manager. Aby uzyskać więcej informacji, zobacz informacje o szablonie eventSubscriptions usługi Microsoft.EventGrid.

Interfejs wiersza polecenia platformy Azure

Użyj polecenia az eventgrid event-subscription create, aby skonfigurować ustawienia związane z przetwarzaniem wsadowym przy użyciu następujących parametrów: --max-events-per-batch lub --preferred-batch-size-in-kilobytes.

Azure PowerShell

Użyj komandora New-AzEventGridSubscription lub Update-AzEventGridSubscription do konfiguracji ustawień związanych z wsadami. Użyj parametru -MaxEventsPerBatch or -PreferredBatchSizeInKiloBytes , aby ustawić swoje preferencje.

Listę obsługiwanych programów obsługi zdarzeń można znaleźć w artykule Programy obsługi zdarzeń.