Udostępnij za pomocą


Jak rejestrować zdarzenia w usłudze Azure Event Hubs w usłudze Azure API Management

DOTYCZY: Wszystkich poziomów zarządzania API

W tym artykule opisano sposób rejestrowania zdarzeń usługi API Management przy użyciu usługi Azure Event Hubs.

Azure Event Hubs to wysoce skalowalna usługa ruchu przychodzącego danych, która może pozyskiwać miliony zdarzeń na sekundę, dzięki czemu można przetwarzać i analizować ogromne ilości danych generowanych przez połączone urządzenia i aplikacje. Usługa Event Hubs działa jako "drzwi wejściowe" dla potoku zdarzeń, a po zebraniu danych w centrum zdarzeń można je przekształcić i przechowywać przy użyciu dowolnego dostawcy analizy w czasie rzeczywistym lub adapterów przetwarzania wsadowego/magazynu. Usługa Event Hubs rozdziela produkcję strumienia zdarzeń od konsumpcji tych zdarzeń, umożliwiając odbiorcom zdarzeń dostęp do nich w dogodnym dla siebie czasie.

Uwaga / Notatka

Obecnie ta funkcja nie jest dostępna w obszarach roboczych.

Wymagania wstępne

Konfigurowanie dostępu do centrum zdarzeń

Aby rejestrować zdarzenia w centrum zdarzeń, należy skonfigurować poświadczenia dostępu z usługi API Management. Usługa API Management obsługuje jeden z dwóch następujących mechanizmów dostępu:

  • Tożsamość zarządzana dla wystąpienia zarządzania API (zalecane)
  • Parametry połączenia usługi Event Hubs

Uwaga / Notatka

Zalecamy używanie poświadczeń tożsamości zarządzanej, jeśli to możliwe, w celu zapewnienia zwiększonych zabezpieczeń.

Opcja 1: Konfigurowanie zarządzanej tożsamości w ramach usługi API Management

  1. Włącz tożsamość zarządzaną przypisaną przez system lub przypisaną przez użytkownika dla usługi API Management w wystąpieniu usługi API Management.

    • Jeśli włączysz zarządzaną tożsamość przypisaną użytkownikowi, zanotuj identyfikator obiektu tej tożsamości.
  2. Przypisz tożsamość roli nadawcy danych usługi Azure Event Hubs w zakresie przestrzeni nazw usługi Event Hubs lub centrum zdarzeń używanego do logowania. Aby przypisać rolę, użyj witryny Azure Portal lub innego narzędzia platformy Azure.

Opcja 2. Konfigurowanie parametrów połączenia usługi Event Hubs

Aby utworzyć łańcuch połączenia usługi Event Hubs, zobacz Pobieranie łańcucha połączenia do usługi Event Hubs.

  • Możesz użyć ciągu połączenia dla przestrzeni nazw usługi Event Hubs lub dla określonego centrum zdarzeń, którego używasz do rejestrowania z usługi API Management.
  • Polityka dostępu współdzielonego dla ciągu połączenia musi umożliwiać co najmniej uprawnienia Wyślij.

Tworzenie rejestratora usługi API Management

Następnym krokiem jest skonfigurowanie rejestratora w usłudze API Management w celu rejestrowania zdarzeń w centrum zdarzeń.

Tworzenie rejestratorów usługi API Management i zarządzanie nimi przy użyciu interfejsu API REST usługi API Management bezpośrednio lub przy użyciu innych narzędzi, takich jak program Azure PowerShell, plik Bicep lub szablon usługi Azure Resource Management.

Rejestrator usługi API Management można skonfigurować w centrum zdarzeń przy użyciu poświadczeń tożsamości zarządzanej przypisanej przez system lub przypisanej przez użytkownika.

Utwórz rejestrator przy użyciu poświadczeń zarządzanej tożsamości przypisanej przez system

Aby uzyskać informacje o wymaganiach wstępnych, zobacz Konfigurowanie tożsamości zarządzanej usługi API Management.

Użyj rejestratora usługi API Management — utwórz lub zaktualizuj element członkowski interfejsu API REST z następującą treścią żądania.

{
  "properties": {
    "loggerType": "azureEventHub",
    "description": "Event Hub logger with system-assigned managed identity",
    "credentials": {
         "endpointAddress":"<EventHubsNamespace>.servicebus.windows.net",
         "identityClientId":"SystemAssigned",
         "name":"<EventHubName>"
    }
  }
}

Utwórz rejestrator z poświadczeniami zarządzanej tożsamości przypisanej przez użytkownika

Aby uzyskać informacje o wymaganiach wstępnych, zobacz Konfigurowanie tożsamości zarządzanej usługi API Management.

Użyj rejestratora usługi API Management — utwórz lub zaktualizuj element członkowski interfejsu API REST z następującą treścią żądania.

{
  "properties": {
    "loggerType": "azureEventHub",
    "description": "Event Hub logger with user-assigned managed identity",
    "credentials": {
         "endpointAddress":"<EventHubsNamespace>.servicebus.windows.net",
         "identityClientId":"<ClientID>",
         "name":"<EventHubName>"
    }
  }
}

Opcja 2. Utwórz rejestrator z poświadczeniami łańcucha połączenia

Aby uzyskać informacje o wymaganiach wstępnych, zobacz Konfigurowanie parametrów połączenia usługi Event Hubs.

Uwaga / Notatka

Zalecamy skonfigurowanie rejestratora przy użyciu poświadczeń tożsamości zarządzanej, jeśli jest to możliwe. Zobacz Konfigurowanie rejestratora przy użyciu poświadczeń tożsamości zarządzanej, wcześniej w artykule.

W poniższym przykładzie użyto polecenia cmdlet New-AzApiManagementLogger w celu utworzenia rejestratora w centrum zdarzeń przez skonfigurowanie parametrów połączenia.

# Details specific to API Management 
$apimServiceName = "apim-hello-world"
$resourceGroupName = "myResourceGroup"

# Create logger
$context = New-AzApiManagementContext -ResourceGroupName $resourceGroupName -ServiceName $apimServiceName
New-AzApiManagementLogger -Context $context -LoggerId "ContosoLogger1" -Name "ApimEventHub" -ConnectionString "Endpoint=sb://<EventHubsNamespace>.servicebus.windows.net/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<key>" -Description "Event hub logger with connection string"

Konfigurowanie zasad log-to-eventhub

Po skonfigurowaniu rejestratora w usłudze API Management możesz skonfigurować politykę log-to-eventhub w celu rejestrowania żądanych zdarzeń. Na przykład użyj log-to-eventhub zasad w sekcji ruchu przychodzącego, aby rejestrować żądania, lub w sekcji ruchu wychodzącego, aby rejestrować odpowiedzi.

  1. Przejdź do wystąpienia usługi API Management.

  2. W obszarze Interfejsy API wybierz pozycję Interfejsy API, a następnie wybierz interfejs API, do którego chcesz dodać zasady. W tym przykładzie dodajemy politykę do Echo API w produkcie Unlimited.

  3. Na karcie Projekt wybierz pozycję Wszystkie operacje.

  4. W okienku Przetwarzanie przychodzące lub Przetwarzanie wychodzące wybierz <przycisk /> (Edytor kodu zasad). Aby uzyskać więcej informacji, zobacz Jak ustawić lub edytować zasady.

  5. Umieść kursor w inbound sekcji zasad lub outbound .

  6. Wybierz pozycję Pokaż fragmenty kodu w górnej części karty. Wybierz pozycję Zaawansowane zasady>Zaloguj się do usługi EventHub. Ta akcja wstawia szablon oświadczenia o zasadach log-to-eventhub.

    <log-to-eventhub logger-id="logger-id">
        @{
            return new JObject(
                new JProperty("EventTime", DateTime.UtcNow.ToString()),
                new JProperty("ServiceName", context.Deployment.ServiceName),
                new JProperty("RequestId", context.RequestId),
                new JProperty("RequestIp", context.Request.IpAddress),
                new JProperty("OperationName", context.Operation.Name)
            ).ToString();
        }
    </log-to-eventhub>
    
    1. Zastąp logger-id nazwą loggera, którą utworzyłeś w poprzednim kroku.
    2. Możesz użyć dowolnego wyrażenia zwracającego ciąg jako wartość elementu log-to-eventhub . W tym przykładzie jest rejestrowany ciąg w formacie JSON zawierający datę i godzinę, nazwę usługi, identyfikator żądania, adres IP żądania i nazwę operacji.
  7. Wybierz pozycję Zapisz , aby zapisać zaktualizowaną konfigurację zasad. Po zapisaniu konfiguracji zasady są aktywne, a zdarzenia są rejestrowane w wyznaczonym centrum zdarzeń.

Uwaga / Notatka

Maksymalny obsługiwany rozmiar komunikatu, który można wysłać do centrum zdarzeń z tych zasad usługi API Management, to 200 kilobajtów (KB). Jeśli komunikat wysyłany do centrum zdarzeń jest większy niż 200 KB, zostanie automatycznie obcięty, a komunikat obcięty zostanie przeniesiony do centrum zdarzeń. W przypadku większych komunikatów rozważ użycie usługi Azure Storage z usługą API Management jako obejścia limitu 200 KB. Aby uzyskać więcej informacji, zobacz Wysyłanie żądań do usługi Azure Storage z usługi API Management.

Podglądaj logi w Event Hubs za pomocą Azure Stream Analytics

Możesz wyświetlić podgląd dziennika w usłudze Event Hubs przy użyciu zapytań usługi Azure Stream Analytics.

  1. W witrynie Azure Portal przejdź do centrum zdarzeń, do którego rejestrator wysyła zdarzenia.
  2. W obszarze Funkcje wybierz pozycję Przetwarzanie danych.
  3. Na karcie Włącz szczegółowe informacje w czasie rzeczywistym ze zdarzeń wybierz pozycję Uruchom.
  4. Powinno być możliwe wyświetlenie podglądu dziennika na karcie Podgląd danych wejściowych . Jeśli wyświetlane dane nie są aktualne, wybierz pozycję Odśwież , aby wyświetlić najnowsze zdarzenia.