Udostępnij za pośrednictwem


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 "wejście" do 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 wsadowych/magazynowania. 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

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

Opcja 1. Konfigurowanie tożsamości zarządzanej 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 tożsamość zarządzaną, przypisaną przez użytkownika, zanotuj identyfikator klienta.
  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 innych narzędzi 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 narzędzi, w tym programu Azure PowerShell, pliku Bicep lub szablonu 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.

Rejestrator z poświadczeniami systemowo przypisanej tożsamości zarządzanej

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 interfejs 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>"
    }
  }
}

Rejestrator z poświadczeniami tożsamości zarządzanej, przypisanymi 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 interfejs 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. Rejestrator z poświadczeniami parametrów połączenia

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

Uwaga / Notatka

Jeśli to możliwe, firma Microsoft zaleca skonfigurowanie rejestratora przy użyciu poświadczeń tożsamości zarządzanej. 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.

# API Management service-specific details
$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"

Konfiguracja zasad logowania do Event Hub

Po skonfigurowaniu rejestratora w usłudze API Management można skonfigurować politykę logowania do usługi EventHub, aby rejestrować pożądane zdarzenia. 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 instancji usługi API Management.

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

  3. Wybierz opcję Wszystkie operacje.

  4. W górnej części ekranu wybierz kartę Projektowanie .

  5. W oknie Przetwarzanie przychodzące lub Przetwarzanie wychodzące wybierz ikonę </> (edytor kodu). Aby uzyskać więcej informacji, zobacz Jak ustawić lub edytować zasady.

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

  7. W oknie po prawej stronie wybierz pozycję Zaawansowane zasady>Zaloguj się do usługi EventHub. Spowoduje to wstawienie szablonu oświadczenia polityki 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.
  8. Wybierz pozycję Zapisz , aby zapisać zaktualizowaną konfigurację zasad. Jak tylko zostanie to zapisane, zasada jest aktywna, 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 obcięty komunikat zostanie przeniesiony do centrum zdarzeń. W przypadku większych komunikatów rozważ użycie usługi Azure Storage z usługą Azure API Management jako obejście limitu 200 KB. Więcej szczegółów można znaleźć w tym artykule.

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 kartę 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.