Udostępnij za pośrednictwem


Wysyłanie zdarzeń z usługi API Management do usługi Event Grid

DOTYCZY: Zużycie | Deweloper | Podstawowa | Standardowa | Premia

Usługa API Management integruje się z usługą Azure Event Grid , dzięki czemu można wysyłać powiadomienia o zdarzeniach do innych usług i wyzwalać procesy podrzędne. Event Grid to w pełni zarządzana usługa routingu zdarzeń, która korzysta z modelu publikowania-subskrybowania. Usługa Event Grid ma wbudowaną obsługę usług platformy Azure, takich jak Azure Functions i Azure Logic Apps, a także może dostarczać alerty dotyczące zdarzeń do usług spoza platformy Azure przy użyciu elementów webhook.

Na przykład przy użyciu integracji z usługą Event Grid można utworzyć aplikację, która aktualizuje bazę danych, tworzy konto rozliczeniowe i wysyła powiadomienie e-mail za każdym razem, gdy użytkownik zostanie dodany do wystąpienia usługi API Management.

W tym artykule subskrybujesz zdarzenia usługi Event Grid w wystąpieniu usługi API Management, wyzwalasz zdarzenia i wysyłasz zdarzenia do punktu końcowego, który przetwarza dane. Aby zachować prostotę, wysyłasz zdarzenia do przykładowej aplikacji internetowej, która zbiera i wyświetla komunikaty:

Zdarzenia usługi API Management w podglądzie usługi Event Grid

Wymagania wstępne

Tworzenie punktu końcowego zdarzenia

W tej sekcji użyjesz szablonu usługi Resource Manager, aby wdrożyć wstępnie utworzoną przykładową aplikację internetową w usłudze aplikacja systemu Azure Service. Później subskrybujesz zdarzenia usługi Event Grid wystąpienia usługi API Management i określisz tę aplikację jako punkt końcowy, do którego są wysyłane zdarzenia.

Aby wdrożyć przykładową aplikację, możesz użyć interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell lub witryny Azure Portal. W poniższym przykładzie użyto polecenia az deployment group create w interfejsie wiersza polecenia platformy Azure.

  • Ustaw RESOURCE_GROUP_NAME nazwę istniejącej grupy zasobów

  • Ustaw SITE_NAME unikatową nazwę aplikacji internetowej

    Nazwa witryny musi być unikatowa na platformie Azure, ponieważ stanowi część w pełni kwalifikowanej nazwy domeny (FQDN) aplikacji internetowej. W późniejszej sekcji przejdź do nazwy FQDN aplikacji w przeglądarce internetowej, aby wyświetlić zdarzenia.

RESOURCE_GROUP_NAME=<your-resource-group-name>
SITE_NAME=<your-site-name>

az deployment group create \
    --resource-group $RESOURCE_GROUP_NAME \
    --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \
    --parameters siteName=$SITE_NAME hostingPlanName=$SITE_NAME-plan

Po pomyślnym wdrożeniu (może to potrwać kilka minut), otwórz przeglądarkę i przejdź do aplikacji internetowej, aby upewnić się, że jest ona uruchomiona:

https://<your-site-name>.azurewebsites.net

Powinna zostać wyświetlona przykładowa aplikacja renderowana bez wyświetlanych komunikatów o zdarzeniach.

Rejestrowanie dostawcy zasobów usługi Event Grid

Jeśli usługa Event Grid nie została wcześniej użyta, musisz zarejestrować dostawcę zasobów usługi Event Grid. Jeśli wcześniej użyto usługi Event Grid, przejdź do następnej sekcji.

W witrynie Azure Portal wykonaj następujące czynności:

  1. W menu po lewej stronie wybierz pozycję Subskrypcje.

  2. Wybierz subskrypcję, której chcesz użyć dla usługi Event Grid z listy subskrypcji.

  3. Na stronie Subskrypcja wybierz pozycję Dostawcy zasobów w obszarze Ustawienia w menu po lewej stronie.

  4. Wyszukaj ciąg Microsoft.EventGrid i upewnij się, że stan to Niezarejestrowany.

  5. Wybierz pozycję Microsoft.EventGrid na liście dostawców.

  6. Wybierz pozycję Zarejestruj na pasku poleceń.

    Obraz przedstawiający rejestrację dostawcy Microsoft.EventGrid w ramach subskrypcji platformy Azure.

  7. Odśwież, aby upewnić się, że stan microsoft.EventGrid został zmieniony na Zarejestrowany.

    Obraz przedstawiający pomyślną rejestrację dostawcy Microsoft.EventGrid w ramach subskrypcji platformy Azure.

Subskrybowanie zdarzeń usługi API Management

W usłudze Event Grid subskrybujesz temat , aby poinformować go o zdarzeniach, które chcesz śledzić i gdzie je wysłać. W tym miejscu utworzysz subskrypcję zdarzeń w wystąpieniu usługi API Management.

  1. W witrynie Azure Portal przejdź do wystąpienia usługi API Management.

  2. Wybierz pozycję Zdarzenia > i subskrypcja zdarzeń.

  3. Na karcie Podstawowe:

    • Wprowadź opisową nazwę subskrypcji zdarzeń.
    • W obszarze Typy zdarzeń wybierz co najmniej jeden typ zdarzeń usługi API Management do wysłania do usługi Event Grid. Na przykład w tym artykule wybierz co najmniej Microsoft.APIManagement.ProductCreated
    • W obszarze Szczegóły punktu końcowego wybierz typ zdarzenia Web Hook , kliknij pozycję Wybierz punkt końcowy i wprowadź adres URL aplikacji internetowej, a następnie api/updates. Przykład: https://myapp.azurewebsites.net/api/updates.
    • Wybierz pozycję Potwierdź wybór.
  4. Pozostaw ustawienia na pozostałych kartach z wartościami domyślnymi, a następnie wybierz pozycję Utwórz.

    Tworzenie subskrypcji zdarzeń w witrynie Azure Portal

Wyzwalanie i wyświetlanie zdarzeń

Teraz, gdy przykładowa aplikacja jest uruchomiona i zasubskrybujesz wystąpienie usługi API Management za pomocą usługi Event Grid, możesz wygenerować zdarzenia.

Na przykład utwórz produkt w wystąpieniu usługi API Management. Jeśli subskrypcja zdarzeń zawiera zdarzenie Microsoft.APIManagement.ProductCreated , utworzenie produktu wyzwala zdarzenie wypychane do punktu końcowego aplikacji internetowej.

Przejdź do aplikacji internetowej Podgląd usługi Event Grid i powinno zostać wyświetlone ProductCreated zdarzenie. Wybierz przycisk obok zdarzenia, aby wyświetlić szczegóły.

Zdarzenie utworzone przez produkt w podglądzie usługi Event Grid

Schemat zdarzeń usługi Event Grid

Dane zdarzeń usługi API Management obejmują resourceUrielement , który identyfikuje zasób usługi API Management, który wyzwolił zdarzenie. Aby uzyskać szczegółowe informacje na temat schematu komunikatów zdarzeń usługi API Management, zobacz dokumentację usługi Event Grid:

Schemat zdarzeń usługi Azure Event Grid dla usługi API Management

Następne kroki