Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PLATÍ PRO: Všechny úrovně služby správy rozhraní API
Tento článek popisuje, jak protokolovat události služby API Management pomocí služby Azure Event Hubs.
Azure Event Hubs je vysoce škálovatelná služba příchozího přenosu dat, která dokáže ingestovat miliony událostí za sekundu, abyste mohli zpracovávat a analyzovat obrovské objemy dat vytvořených připojenými zařízeními a aplikacemi. Event Hubs funguje jako "front door" pro kanál událostí a jakmile se data shromažďují do centra událostí, můžete je transformovat a uložit pomocí libovolného poskytovatele analýz v reálném čase nebo adaptérů batching/storage. Event Hubs odděluje produkci datového proudu událostí od spotřeby těchto událostí, aby uživatelé událostí měli přístup k událostem podle vlastního plánu.
Poznámka:
V současné době tato funkce není dostupná v pracovních prostorech.
Požadavky
- Instance služby API Management. Pokud ho nemáte, přečtěte si téma Vytvoření instance služby API Management.
- Obor názvů služby Event Hubs a centrum událostí. Podrobné kroky najdete v tématu Vytvoření oboru názvů pro Event Hubs a event hub pomocí portálu Azure.
Poznámka:
Prostředek Event Hubs může být v jiném předplatném nebo dokonce u jiného tenantu než prostředek API Managementu.
Konfigurace přístupu k centru událostí
Pokud chcete protokolovat události do centra událostí, musíte nakonfigurovat přihlašovací údaje pro přístup ze služby API Management. API Management podporuje některý z následujících dvou mechanismů přístupu:
- Spravovaná identita pro vaši instanci služby API Management (doporučeno)
- Připojovací řetězec služby Event Hubs
Poznámka:
Pro lepší zabezpečení doporučujeme používat přihlašovací údaje spravované identity, pokud je to možné.
Možnost 1: Konfigurace spravované identity služby API Management
Povolte spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem pro službu API Management ve vaší instanci služby API Management.
- Pokud aktivujete spravovanou identitu přiřazenou uživatelem, zaznamenejte si ID objektu identity.
Přiřaďte identitu roli odesílatele dat služby Azure Event Hubs v rámci oboru jmenného prostoru Event Hubs nebo ke konkrétnímu centru událostí určenému pro protokolování. K přiřazení role použijte Azure Portal nebo jiný nástroj Azure.
Možnost 2: Konfigurace připojovacího řetězce služby Event Hubs
Pokud chcete vytvořit připojovací řetězec služby Event Hubs, přečtěte si téma Získání připojovacího řetězce služby Event Hubs.
- Připojovací řetězec můžete použít pro obor názvů služby Event Hubs nebo pro konkrétní centrum událostí, které používáte pro protokolování ze služby API Management.
- Zásady sdíleného přístupu pro připojovací řetězec musí povolit alespoň oprávnění Odeslat .
Vytvořte protokolovací nástroj pro správu rozhraní API
Dalším krokem je konfigurace protokolovacího nástroje ve službě API Management, aby mohl protokolovat události do centra událostí.
Protokolovací nástroje API Management můžete vytvářet a spravovat přímo pomocí rozhraní REST API služby API Management nebo pomocí jiných nástrojů, jako je Azure PowerShell, soubor Bicep nebo šablona azure Resource Management.
Možnost 1: Vytvoření loggeru pomocí přihlašovacích údajů spravované identity (doporučeno)
Protokolovací nástroj API Management můžete nakonfigurovat do centra událostí pomocí přihlašovacích údajů spravované identity přiřazené systémem nebo přiřazené uživatelem.
Vytvořte logger s přihlašovacími údaji spravované identity přiřazené systémem
Požadavky najdete v tématu Konfigurace spravované identity služby API Management.
Použijte protokolovací nástroj API Management – Vytvoření nebo aktualizace člena rozhraní REST API s následujícím textem požadavku.
{
"properties": {
"loggerType": "azureEventHub",
"description": "Event Hub logger with system-assigned managed identity",
"credentials": {
"endpointAddress":"<EventHubsNamespace>.servicebus.windows.net",
"identityClientId":"SystemAssigned",
"name":"<EventHubName>"
}
}
}
Vytvořte logger s přihlašovacími údaji spravované identity přiřazené uživatelem
Požadavky najdete v tématu Konfigurace spravované identity služby API Management.
Použijte protokolovací nástroj API Management – Vytvoření nebo aktualizace člena rozhraní REST API s následujícím textem požadavku.
{
"properties": {
"loggerType": "azureEventHub",
"description": "Event Hub logger with user-assigned managed identity",
"credentials": {
"endpointAddress":"<EventHubsNamespace>.servicebus.windows.net",
"identityClientId":"<ClientID>",
"name":"<EventHubName>"
}
}
}
Možnost 2. Vytvořte protokolovací nástroj s údaji připojovacího řetězce
Požadavky najdete v tématu Konfigurace připojovacího řetězce služby Event Hubs.
Poznámka:
Doporučujeme, abyste protokolovací nástroj nakonfigurovali s přihlašovacími údaji spravované identity, pokud je to možné. Viz Konfigurace protokolovacího nástroje s přihlašovacími údaji spravované identity dříve v tomto článku.
Následující příklad používá rutinu New-AzApiManagementLogger k vytvoření loggeru do událostního rozbočovače pomocí konfigurace připojovacího řetězce.
# 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"
Konfigurovat zásady log-to-eventhub
Jakmile je záznamový nástroj nakonfigurován ve službě API Management, můžete nakonfigurovat zásady log-to-eventhub tak, aby zapisovaly požadované události. Pomocí log-to-eventhub zásad v části příchozích zásad můžete například protokolovat požadavky nebo v oddílu odchozích zásad protokolovat odpovědi.
Přejděte do instance služby API Management.
V části Rozhraní API vyberte rozhraní API a pak vyberte rozhraní API, do kterého chcete zásadu přidat. V tomto příkladu přidáváme politiku do rozhraní Echo API v produktu Neomezený.
Na kartě Návrh vyberte Všechny operace.
V podokně Zpracování příchozích dat nebo Odchozí zpracování vyberte <tlačítko /> (Editor kódu zásad). Další informace naleznete v tématu Jak nastavit nebo upravit zásady.
Umístěte kurzor do oddílu
inboundnebooutboundzásad.V horní části karty vyberte Zobrazit úryvky. Vyberte Rozšířené zásady>Zapsat do EventHubu. Tato akce vloží
log-to-eventhubšablonu prohlášení o zásadách.<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>- Nahraďte
logger-idnázvem protokolovacího nástroje, který jste vytvořili v předchozím kroku. - Můžete použít libovolný výraz, který vrací řetězec jako hodnotu prvku
log-to-eventhub. V tomto příkladu se zaprotokoluje řetězec ve formátu JSON obsahující datum a čas, název služby, ID požadavku, IP adresu požadavku a název operace.
- Nahraďte
Výběrem možnosti Uložit uložte aktualizovanou konfiguraci zásad. Jakmile se konfigurace uloží, zásada je aktivní a události se zaprotokolují do určeného centra událostí.
Poznámka:
Maximální podporovaná velikost zprávy, kterou je možné odeslat do centra událostí z této zásady služby API Management, je 200 kilobajtů (KB). Pokud je zpráva odeslaná do centra událostí větší než 200 kB, automaticky se zkrátí a zkrácená zpráva se přenese do centra událostí. U větších zpráv zvažte použití služby Azure Storage se službou API Management jako alternativní řešení pro obejití limitu 200 kB. Další informace najdete v tématu Odesílání požadavků do služby Azure Storage ze služby API Management.
Prohlédněte si náhled protokolu ve službě Event Hubs pomocí Azure Stream Analytics
Předběžný náhled protokolu ve službě Event Hubs můžete zobrazit pomocí dotazů Azure Stream Analytics.
- Na webu Azure Portal přejděte do centra událostí, do kterého protokolovací nástroj odesílá události.
- V části Funkce vyberte Zpracovat data.
- Na kartě Povolit přehledy z událostí v reálném čase vyberte Spustit.
- Měli byste být schopni zobrazit náhled protokolu na kartě Náhled vstupu. Pokud zobrazená data nejsou aktuální, vyberte Aktualizovat, abyste zobrazili nejnovější události.
Související obsah
- Další informace o službě Azure Event Hubs
- Další informace o integraci služby API Management a služby Event Hubs
- Referenční informace k entitě loggeru
- Referenční informace o zásadách log-to-eventhub
- Další informace o integraci se službou Azure Application Insights