Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
UYGULANANLAR: Tüm API Management katmanları
Bu makalede, Azure Event Hubs kullanarak API Management olaylarının nasıl günlüğe kaydedildiği açıklanır.
Azure Event Hubs, bağlı cihazlarınız ve uygulamalarınız tarafından üretilen oldukça büyük miktardaki verileri işleyip analiz edebilmeniz için saniye başına milyonlarca olayı işleyebilen ileri düzeyde ölçeklenebilir bir veri alım sistemidir. Event Hubs bir olay işlem hattı için "ön kapı" görevi görür ve veriler bir olay hub'ına toplandıktan sonra, herhangi bir gerçek zamanlı analiz sağlayıcısını veya toplu işlem/depolama bağdaştırıcılarını kullanarak dönüştürebilir ve depolayabilirsiniz. Event Hubs olay akışı üretimlerini bu olayların tüketilmesinden ayırır, böylece olay tüketicileri olaylara kendi zamanlamalarında erişebilir.
Önkoşullar
- Api Management hizmet örneği. Yoksa, API Management hizmet örneği oluşturma konusuna bakın.
- Bir Event Hubs ad alanı ve olay platformu. Ayrıntılı adımlar için bkz.: Azure portalını kullanarak Event Hubs ad alanı ve olay hub’ı oluşturma.
Not
Event Hubs kaynağı, farklı bir abonelikte, hatta API Yönetimi kaynağından farklı bir kiracıda olabilir.
Olay hub'ına erişimi yapılandırma
Olayları olay hub'ına kaydetmek için API Management'tan erişim için kimlik bilgilerini yapılandırmanız gerekir. API Management, aşağıdaki iki erişim mekanizmasından birini destekler:
- API Management örneğiniz için yönetilen kimlik (önerilir)
- Event Hubs bağlantı dizesi
Not
Gelişmiş güvenlik için mümkün olduğunda yönetilen kimlik kimlik bilgilerini kullanmanızı öneririz.
1. Seçenek: API Management yönetilen kimliğini yapılandırma
API Management örneğinizde API Management için sistem tarafından atanmış veya kullanıcı tarafından atanmış yönetilen kimliği etkinleştirin.
- Kullanıcı tarafından atanan yönetilen kimliği etkinleştirirseniz, kimliğin Nesne Kimliğini not alın.
Kimliğe, kapsamı Event Hubs ad alanı veya günlük kaydı için kullanılan olay hub’ı olan Azure Event Hubs Veri Göndericisi rolünü atayın. Rolü atamak için Azure portalını veya başka bir Azure aracını kullanın.
Seçenek 2: Event Hubs bağlantı dizesini yapılandırma
Bir Event Hubs bağlantı dizesi oluşturmak için, bkz. Event Hubs bağlantı dizesi alma.
- API Management'tan günlük kaydı yapmak için kullandığınız belirli bir olay hub'ı ya da Event Hubs ad alanı için bir bağlantı dizesi kullanabilirsiniz.
- bağlantı dizesi için paylaşılan erişim ilkesi en azından Gönderme izinlerini etkinleştirmelidir.
API Management günlük kaydedicisi oluşturun
Sonraki adım, API Management hizmetinizde olayları olay hub'ına kaydedebilmesi için bir logger yapılandırmaktır.
API Management REST API'sini doğrudan kullanarak veya Azure PowerShell, Bicep dosyası veya Azure Kaynak Yönetimi şablonu gibi diğer araçları kullanarak API Management günlükçüleri oluşturun ve yönetin.
Seçenek 1: Yönetilen kimlik kimlik bilgileriyle günlükçü oluşturma (önerilir)
Sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimlik bilgilerini kullanarak bir olay hub'ına API Management kaydedicisini yapılandırabilirsiniz.
Sistem tarafından atanan yönetilen kimlik bilgilerini kullanarak kaydedici oluşturma
Önkoşullar için, API Yönetimi yönetilen kimliğini yapılandırma bölümüne bakın.
API Management Logger - REST API özelliğini, aşağıdaki istek gövdesiyle oluşturun veya güncelleştirin.
{
"properties": {
"loggerType": "azureEventHub",
"description": "Event Hub logger with system-assigned managed identity",
"credentials": {
"endpointAddress":"<EventHubsNamespace>.servicebus.windows.net",
"identityClientId":"SystemAssigned",
"name":"<EventHubName>"
}
}
}
Kullanıcı tarafından atanan yönetilen kimlik kimlik bilgileriyle günlükçü oluşturma
Önkoşullar için, API Yönetimi yönetilen kimliğini yapılandırma bölümüne bakın.
API Management Logger - REST API özelliğini, aşağıdaki istek gövdesiyle oluşturun veya güncelleştirin.
{
"properties": {
"loggerType": "azureEventHub",
"description": "Event Hub logger with user-assigned managed identity",
"credentials": {
"endpointAddress":"<EventHubsNamespace>.servicebus.windows.net",
"identityClientId":"<ClientID>",
"name":"<EventHubName>"
}
}
}
2. Seçenek Bağlantı dizesi kimlik bilgileriyle bir loglama aracı oluşturma
Önkoşullar için bkz. Event Hubs bağlantı dizesini yapılandırma.
Not
Mümkün olduğunda günlükçüyü yönetilen kimlik bilgileriyle yapılandırmanızı öneririz. Bu makalenin önceki kısmında yer aldığı gibi, yönetilen kimlik kimlik bilgileriyle bir günlükçü yapılandırma bölümüne bakın.
Aşağıdaki örnek, bir bağlantı dizesi yapılandırarak bir Olay Hub'ına günlük kaydedici oluşturmak için New-AzApiManagementLogger cmdlet'ini kullanır.
# 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"
Log-to-eventhub ilkesini yapılandırın.
Günlükçünüz API Management'ta yapılandırıldıktan sonra, istenen olayları günlüğe kaydetmek için log-to-eventhub ilkenizi yapılandırabilirsiniz. Örneğin, istekleri günlüğe kaydetmek için gelen ilkesi bölümünde log-to-eventhub ilkesini veya yanıtları günlüğe kaydetmek için giden ilkesi bölümünde log-to-eventhub ilkesini kullanın.
API Management örneğine gidin.
API'ler'in altında API'ler'i seçin ve ardından ilkeyi eklemek istediğiniz API'yi seçin. Bu örnekte, Sınırsız üründeki Echo API'sinebir ilke ekliyoruz.
Tasarım sekmesinde Tüm işlemler'i seçin.
Gelen işleme veya Giden işleme bölmesinde /< (İlke kodu düzenleyicisi) düğmesini seçin>. Daha fazla bilgi için bkz . İlkeleri ayarlama veya düzenleme.
İmlecinizi
inboundveyaoutboundilke bölümüne getirin.Sekmenin üst kısmındaki Parçacıkları göster'i seçin. Gelişmiş ilkeler>EventHub'a günlük kaydet'i seçin. Bu eylem ilke deyimi şablonunu ekler
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>-
logger-idöğesini önceki adımda oluşturduğunuz günlük kaydedicinin adıyla değiştirin. -
log-to-eventhuböğesinin değeri olarak dize döndüren herhangi bir ifadeyi kullanabilirsiniz. Bu örnekte, JSON biçiminde tarih ve saat, hizmet adı, istek kimliği, istek IP adresi ve işlem adını içeren bir dize günlüğe kaydedilir.
-
Güncelleştirilmiş ilke yapılandırmasını kaydetmek için Kaydet'i seçin. Yapılandırma kaydedilir kaydedilmez ilke etkin olur ve olaylar belirlenen olay hub'ına kaydedilir.
Not
Bu API Management ilkesinden bir olay hub'ına gönderilebilen desteklenen ileti boyutu üst sınırı 200 kilobayttır (KB). Olay hub'ına gönderilen bir ileti 200 KB'tan büyükse, otomatik olarak kesilir ve kesilen ileti olay hub'ına aktarılır. Daha büyük iletiler için, 200 KB sınırını atlamak için geçici bir çözüm olarak API Management ile Azure Depolama'yı kullanmayı göz önünde bulundurun. Daha fazla bilgi için bkz. API Management'tan Azure Depolama'ya istek gönderme.
Azure Stream Analytics kullanarak Event Hubs'daki günlüğü önizleyin
Azure Stream Analytics sorgularını kullanarak Event Hubs'da günlüğü önizleyebilirsiniz.
- Azure Portalı'nda kaydedicinin olayları gönderdiği olay merkezine gidin.
- Özellikler'in altında Verileri işle'yi seçin.
- Olaylardan gerçek zamanlı içgörüleri etkinleştir kartında Başlat'ı seçin.
- Giriş önizleme sekmesinde günlüğün önizlemesini görebilmeniz gerekir. Gösterilen veriler geçerli değilse, en son olayları görmek için Yenile'yi seçin.
İlgili içerik
- Azure Event Hubs hakkında daha fazla bilgi edinin
- API Management ve Event Hubs tümleştirmesi hakkında daha fazla bilgi edinin
- Logger varlık referansı
- log-to-eventhub ilke başvurusu
- Azure Uygulaması Insights ile tümleştirme hakkında daha fazla bilgi edinin