Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
VAN TOEPASSING OP: alle API Management-lagen
In dit artikel wordt beschreven hoe u API Management-gebeurtenissen kunt registreren met behulp van Azure Event Hubs.
Azure Event Hubs is een zeer schaalbare service voor inkomende gegevens die miljoenen gebeurtenissen per seconde kan opnemen, voor verwerking en analyse van de enorme hoeveelheden gegevens die worden geproduceerd door verbonden apparaten en toepassingen. Event Hubs fungeert als de 'voordeur' voor een gebeurtenispijplijn en nadat gegevens zijn verzameld in een Event Hub, kunt u deze transformeren en opslaan met behulp van elke realtime analyseprovider of batchverwerking/opslagadapters. Event Hubs koppelt de productie van een gebeurtenissenstroom los van het gebruik van deze gebeurtenissen, zodat de consumenten ervan toegang hebben tot de gebeurtenissen op basis van hun eigen planning.
Notitie
Deze functie is momenteel niet beschikbaar in werkruimten.
Vereisten
- Een API Management-service-exemplaar. Maak een API Management-service-instantie als u er nog geen hebt.
- Een Event Hubs-naamruimte en een Event Hub. Zie Een Event Hubs-naamruimte en een Event Hub maken met behulp van Azure Portal voor gedetailleerde stappen.
Notitie
De Event Hubs-resource kan zich in een ander abonnement of zelfs in een andere tenant bevinden dan de API Management-resource.
Toegang tot de Event Hub configureren
Als u gebeurtenissen wilt registreren bij de Event Hub, moet u referenties configureren voor toegang vanuit API Management. API Management ondersteunt een van de twee volgende toegangsmechanismen:
- Een beheerde identiteit voor uw API Management-exemplaar (aanbevolen)
- Een Event Hubs-verbindingsreeks
Notitie
We raden u aan om waar mogelijk referentiegegevens voor beheerde identiteiten te gebruiken voor meer veiligheid.
Optie 1: Een beheerde API Management-identiteit configureren
Schakel een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit in voor API Management in uw API Management-exemplaar.
- Als u een door de gebruiker toegewezen beheerde identiteit inschakelt, noteert u de object-id van de identiteit.
Wijs de identiteit toe aan de azure Event Hubs-gegevenszenderrol , die is gericht op de Event Hubs-naamruimte of aan de Event Hub die wordt gebruikt voor logboekregistratie. Als u de rol wilt toewijzen, gebruikt u Azure Portal of een ander Azure-hulpprogramma.
Optie 2: Een Event Hubs-verbindingsreeks configureren
Zie Een Event Hubs-verbindingsreeks ophalen om een verbinding met Event Hubs te maken.
- U kunt een verbindingsreeks gebruiken voor de Event Hubs-naamruimte of voor de specifieke Event Hub die u gebruikt voor logboekregistratie vanuit API Management.
- Het beleid voor gedeelde toegang voor de verbindingsreeks moet ten minste machtigingen voor verzenden inschakelen.
Een API Management-logboekregistratie maken
De volgende stap is het configureren van een logboekregistratie in uw API Management-service, zodat gebeurtenissen kunnen worden geregistreerd bij de Event Hub.
Api Management-logboekregistraties maken en beheren met behulp van de API Management REST API rechtstreeks of met behulp van andere hulpprogramma's, zoals Azure PowerShell, een Bicep-bestand of een Azure Resource Management-sjabloon.
Optie 1: Een logboekregistratie maken met referenties voor beheerde identiteiten (aanbevolen)
U kunt een API Management-logger voor een Event Hub configureren met behulp van door het systeem toegewezen of door de gebruiker toegewezen referenties voor beheerde identiteit.
Een logger maken met door het systeem toegewezen beheerde identiteitsreferenties
Zie Een door API Management beheerde identiteit configureren voor vereisten.
Gebruik de API Management Logger - REST API-lid maken of bijwerken met de volgende aanvraagbody.
{
"properties": {
"loggerType": "azureEventHub",
"description": "Event Hub logger with system-assigned managed identity",
"credentials": {
"endpointAddress":"<EventHubsNamespace>.servicebus.windows.net",
"identityClientId":"SystemAssigned",
"name":"<EventHubName>"
}
}
}
Een logger maken met door de gebruiker toegewezen beheerde identiteitsreferenties
Zie Een door API Management beheerde identiteit configureren voor vereisten.
Gebruik de API Management Logger - REST API-lid maken of bijwerken met de volgende aanvraagbody.
{
"properties": {
"loggerType": "azureEventHub",
"description": "Event Hub logger with user-assigned managed identity",
"credentials": {
"endpointAddress":"<EventHubsNamespace>.servicebus.windows.net",
"identityClientId":"<ClientID>",
"name":"<EventHubName>"
}
}
}
Optie 2. Een logboekregistratie maken met verbindingsreeksreferenties
Zie Een Event Hubs-verbindingsreeks configureren voor vereisten.
Notitie
Wij raden aan dat u de logger indien mogelijk configureert met referenties voor beheerde identiteiten. Zie Een logger configureren met referenties voor beheerde identiteit, eerder in dit artikel.
In het volgende voorbeeld wordt de cmdlet New-AzApiManagementLogger gebruikt om een logger naar een Event Hub te maken door een verbindingsreeks te configureren.
# 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"
Een log-to-eventhub-beleid configureren
Nadat de logger is geconfigureerd in API Management, kunt u het log-to-eventhub beleid configureren om de gewenste gebeurtenissen vast te leggen. Gebruik bijvoorbeeld het log-to-eventhub beleid in de sectie inkomend beleid om aanvragen te registreren of in de sectie Uitgaand beleid om antwoorden te registreren.
Ga naar uw API Management-exemplaar.
Selecteer api's onder API's en selecteer vervolgens de API waaraan u het beleid wilt toevoegen. In dit voorbeeld voegen we een beleid toe aan de Echo-API in het onbeperkte product.
Selecteer Alle bewerkingen op het tabblad Ontwerpen.
Selecteer in het deelvenster Binnenkomende verwerking of Uitgaande verwerking de <knop /> (Editor voor beleidscode). Zie Beleidsregels instellen of bewerken voor meer informatie.
Plaats de cursor in de
inbound- ofoutbound-beleidssectie.Selecteer Fragmenten boven aan het tabblad weergeven. Selecteer Geavanceerd beleid>registreren bij EventHub. Met deze actie wordt de sjabloon voor beleidsverklaring
log-to-eventhubingevoegd.<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>- Vervang door
logger-idde naam van de logger die u in de vorige stap hebt gemaakt. - U kunt elke expressie gebruiken die een tekenreeks retourneert als de waarde voor het
log-to-eventhubelement. In dit voorbeeld wordt een tekenreeks in JSON-indeling met de datum en tijd, servicenaam, aanvraag-id, aanvraag-IP-adres en bewerkingsnaam geregistreerd.
- Vervang door
Selecteer Opslaan om de bijgewerkte beleidsconfiguratie op te slaan. Zodra de configuratie is opgeslagen, is het beleid actief en worden gebeurtenissen geregistreerd bij de aangewezen Event Hub.
Notitie
De maximale ondersteunde berichtgrootte die vanuit dit API Management-beleid naar een Event Hub kan worden verzonden, is 200 kilobytes (KB). Als een bericht dat naar een Event Hub wordt verzonden, groter is dan 200 kB, wordt het automatisch afgekapt en wordt het afgekapte bericht overgebracht naar de Event Hub. Voor grotere berichten kunt u Azure Storage gebruiken met API Management als tijdelijke oplossing om de limiet van 200 kB te omzeilen. Zie Aanvragen verzenden naar Azure Storage vanuit API Management voor meer informatie.
Een voorbeeld van het logboek in Event Hubs bekijken met behulp van Azure Stream Analytics
U kunt een voorbeeld van het logboek in Event Hubs bekijken met behulp van Azure Stream Analytics-query's.
- Ga in de "Azure Portal" naar de Event Hub waarnaar de logger gebeurtenissen logt.
- Selecteer onder Functiesde optie Procesgegevens.
- Selecteer Start op de Real-time inzichten uit gebeurtenissen inschakelen kaart.
- U moet een voorbeeld van het logboek kunnen bekijken op het tabblad Voorbeeld van invoer. Als de weergegeven gegevens niet actueel zijn, selecteert u Vernieuwen om de meest recente gebeurtenissen weer te geven.
Verwante inhoud
- Meer informatie over Azure Event Hubs
- Meer informatie over API Management en Event Hubs-integratie
- Meer informatie over integratie met Azure-toepassing Insights