Udostępnij za pośrednictwem


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

DOTYCZY: Wszystkie warstwy usługi API Management

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 transferu danych przychodzących, która może obsługiwać miliony zdarzeń na sekundę, dzięki czemu możliwe jest przetwarzanie i analizowanie olbrzymich ilości danych wytworzonych przez podłą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 kart wsadowych/magazynowych. Usługa Event Hubs oddziela wytwarzanie strumienia zdarzeń od użycia tych zdarzeń, dzięki czemu odbiorcy zdarzeń mogą uzyskiwać dostęp do zdarzeń zgodnie z własnym harmonogramem.

Uwaga

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 usługi API Management (zalecane)
  • Parametry połączenia usługi Event Hubs

Uwaga

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 tożsamości.
  2. Przypisz tożsamość roli nadawcy danych usługi Azure Event Hubs w zakresie do przestrzeni nazw usługi Event Hubs lub do centrum zdarzeń używanego do rejestrowania. Aby przypisać rolę, użyj witryny Azure Portal lub innych narzędzi platformy Azure.

Opcja 2. Konfigurowanie usługi Event Hubs parametry połączenia

Aby utworzyć parametry połączenia usługi Event Hubs, zobacz Pobieranie parametry połączenia usługi Event Hubs.

  • Możesz użyć parametry połączenia dla przestrzeni nazw usługi Event Hubs lub dla określonego centrum zdarzeń używanego do rejestrowania z usługi API Management.
  • Zasady dostępu współdzielonego dla parametry połączenia muszą włączyć 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, szablonu 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 tożsamości zarządzanej 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 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 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 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>"
    }
  }
}

Sposób 2. Rejestrator z poświadczeniami parametry połączenia

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

Uwaga

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 tym artykule.

W poniższym przykładzie użyto polecenia cmdlet New-AzApiManagementLogger w celu utworzenia rejestratora w centrum zdarzeń przez skonfigurowanie parametry 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"

Konfigurowanie zasad log-to-eventhub

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

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

  2. Wybierz pozycję Interfejsy API, a następnie wybierz interfejs API, do którego chcesz dodać zasady. W tym przykładzie dodajemy zasady do interfejsu API echo 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 instrukcji log-to-eventhub zasad.

    <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 ciąg nazwą rejestratora utworzonego 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. Po zapisaniu zasady są aktywne, a zdarzenia są rejestrowane w wyznaczonym centrum zdarzeń.

Uwaga

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.

Wyświetlanie podglądu dziennika w usłudze Event Hubs przy użyciu usługi 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 na karcie zdarzenia 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.

Następne kroki