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.
Bu makalede, ad alanı konularıyla ilişkili ana kavramlar ve işlevler açıklanmaktadır.
Ekinlikler
Olay, bir sistemde gerçekleşen bir şeyi tam olarak açıklayan en küçük bilgi miktarıdır. Eyleme dönüştürülebilir içgörüler sağlayan bir sistemle ilgili ayrı, kendi kendine duran bir gerçeği temsil ettiğinden, olay genellikle ayrık olay olarak adlandırılır. Her olay, olayın source, olayın gerçekleştiği zamanı time ve benzersiz bir tanımlayıcı gibi ortak bilgilere sahiptir. Her olayda genellikle olayın kullanıldığı duyuru türünü açıklayan benzersiz bir tanımlayıcı olan bir typede vardır.
Örneğin, Azure Depolama'da oluşturulan yeni dosya hakkındaki olayda dosyayla ilgili lastTimeModified değeri gibi ayrıntılar vardır. Event Hubs olayı, yakalanan dosyanın URL'sine sahiptir. Siparişler mikro hizmetinizde yeni bir siparişle ilgili bir olay, siparişin durum temsili için bir orderId özniteliğine ve bir URL özniteliğine sahip olabilir. Olay türlerine birkaç örnek daha şunlardır: com.yourcompany.Orders.OrderCreated, org.yourorg.GeneralLedger.AccountChanged, io.solutionname.Auth.MaximumNumberOfUserLoginAttemptsReached.
Aşağıda örnek bir olay verilmişti:
{
"specversion" : "1.0",
"type" : "com.yourcompany.order.created",
"source" : "/orders/account/123",
"subject" : "O-28964",
"id" : "A234-1234-1234",
"time" : "2018-04-05T17:31:00Z",
"comexampleextension1" : "value",
"comexampleothervalue" : 5,
"datacontenttype" : "application/json",
"data" : {
"orderId" : "O-28964",
"URL" : "https://com.yourcompany/orders/O-28964"
}
}
Başka bir tür olay
Kullanıcı topluluğu, tek bir cihaz okuma veya web uygulaması sayfasına tıklama gibi bir veri noktası taşıyan iletileri de "olaylar" olarak ifade eder. İçgörüler türetmek ve eyleme geçmek için bu tür olayları genellikle bir zaman penceresinde analiz edebilirsiniz. Event Grid belgelerinde bu tür olaylara veri noktası, akış verileri veya yalnızca telemetri adı verilir. Event Grid'in Message Queuing Telemetry Transport (MQTT) aracısı özelliği, diğer ileti türlerinin yanı sıra bu tür olayları kullanır.
CloudEvents desteği
Event Grid ad alanı konuları, JSON biçimindeHTTP protokol bağlamasını kullanarak Cloud Native Computing Foundation (CNCF) açık standart CloudEvents 1.0 belirtimiyle uyumlu olayları kabul eder. CloudEvent, iletileneni içeren, olay verileri olarak adlandırılan ve bununla ilgili meta veriler içeren bir ileti türüdür. Olay temelli mimarilerdeki olay verileri genellikle sistem durumu değişikliği duyurulan bilgileri taşır. CloudEvents meta verileri, iletinin kaynağı (kaynak sistem) ve türü gibi bağlamsal bilgiler sağlayan bir öznitelik kümesinden oluşur.
Daha fazla bilgi için bkz. CloudEvents şeması desteği.
Yayımcılar
Yayımcı, Event Grid'e olay gönderen uygulamadır. Olayların kaynaklandığı uygulama, yani olay kaynağı ile aynı uygulama olabilir. Ad alanı konularını kullanırken kendi uygulamanızdan olayları yayımlayabilirsiniz.
Olay kaynakları
Olay kaynağı, olayın gerçekleştiği yerdir. Her olay kaynağı bir veya daha fazla olay türünü destekler. Örneğin, uygulamanız sisteminizin tanımladığı özel olaylar için olay kaynağıdır. Ad alanı konularını kullanırken desteklenen olay kaynakları kendi uygulamalarınızdır.
Ad Alanları
Event Grid ad alanı, aşağıdaki kaynaklar için bir yönetim kapsayıcısıdır:
| Kaynak | Desteklenen protokol |
|---|---|
| Ad alanı konuları | HTTP |
| Konu Alanları | MQTT |
| Müşteriler | MQTT |
| İstemci Grupları | MQTT |
| CA Sertifikaları | MQTT |
| İzin bağlamaları | MQTT |
Azure Event Grid isim alanı kullanarak, ilgili kaynakları gruplayabilir ve Azure aboneliğinizde tek bir birim olarak yönetebilirsiniz. Size benzersiz bir tam nitelikli alan adı (FQDN) sağlar.
Ad alanı iki uç noktayı kullanıma sunar:
- İsim alanı konuları kullanarak genel mesajlaşma gereksinimlerini desteklemek için HTTP uç noktası.
- IoT mesajlaşması veya MQTT kullanan çözümler için bir MQTT uç noktası.
Ad alanı, DNS ile tümleşik ağ uç noktaları da sağlar. Ayrıca genel IP girişi filtreleme ve özel bağlantılar gibi bir dizi erişim denetimi ve ağ tümleştirme yönetimi özelliği sağlar. Ayrıca, ad alanı içindeki kaynaklar için kullanılan yönetilen kimliklerin kapsayıcısıdır.
İşte ad alanları hakkında birkaç nokta daha:
- Bir ad alanı,
tagsvelocationözellikleri olan izlenen bir kaynaktır. Oluşturduktan sonra, bunuresources.azure.comüzerinde bulabilirsiniz. - Ad alanının adı 3-50 karakter uzunluğunda olabilir. Alfanümerik karakterler, tireler (-) içerebilir ve boşluk içeremez.
- Adın bölge başına benzersiz olması gerekir.
Verim birimleri
Aktarım hızı birimleri (TU) ad alanları içindeki giriş ve çıkış olay hızı kapasitesini tanımlar. Daha fazla bilgi için bkz . Azure Event Grid kotaları ve sınırları.
Otomatik Ölçeklendirme
Otomatik ölçeklendirme, gerçek zamanlı trafik ve kaynak kullanımına göre bir Event Grid isim alanına atanan aktarım birimi sayısını otomatik olarak ayarlar. Temel performans göstergelerini sürekli izler ve yapılandırmanız için minimum ve maksimum sınırlar içinde kapasiteyi ölçekler. Bu davranış, iş yükü sıçramalarında tutarlı performansı korumaya yardımcı olur ve düşük aktivite dönemlerinde manuel müdahale gerektirmeden maliyeti azaltır.
Autoscale’i kullanmak için bunu ad alanında etkinleştirir ve şunları belirtirsiniz:
- Minimum aktarım kapasitesi birimleri: Kapasite için alt sınır. İsim alanı bu değerin altına ölçeklenmiyor.
- Maksimum aktarım birimleri: Kapasite tavanı. İsim alanı bu değerin üzerine ölçeklenmiyor.
Event Grid, olay girişi, olay çıkışı, MQTT gelen ve giden yayın oranları ile MQTT kayıtlı istemci sayıları üzerinden kullanım oranlarını değerlendirir. Herhangi bir kategori ölçeklendirme eşiğini aştığında, daha fazla TU sağlanır. Tüm kategoriler ölçeklendirme eşiğinin altına düştüğünde, TU'lar serbest bırakılır. Ölçeklendirme işlemleri arasındaki bekleme süreleri hızlı salınımı engeller.
Otomatik ölçeklendirme, cihazlar bağlandıkça ve bağlantıları kesildikçe mesajların dağıtımı ve aboneliklerdeki artışın hızla değişebildiği MQTT iş yükleri için yararlıdır. Ayrıca, ani trafik artışları gösteren olay aracısı iş yükleri için de yararlıdır.
Yapılandırma detayları ve TU başına kapasite sınırları için Autoscale genel görünümü ve nasıl yapılır rehberine bakınız.
Konu başlıkları
Konu başlığında Event Grid'de yayımlanan olaylar yer alır. Genellikle ilgili olaylar koleksiyonu için bir konu kaynağı kullanırsınız. Ad alanı içindeki konular genellikle ad alanı konuları olarak adlandırılır.
Ad alanı konuları
Ad alanı konuları, Event Grid ad alanı içinde oluşturulan konulardır. Uygulamanız, yayımlanan olayların mantıksal olarak yer aldığı bir ad alanı konusu belirten bir HTTP ad alanı uç noktasında olayları yayımlar. Uygulamanızı tasarlarken, kaç konu başlığı oluşturulacağınız konusunda karar verin. Nispeten büyük çözümler için, ilgili olayların her kategorisi için bir ad alanı konusu oluşturun. Örneğin, kullanıcı hesaplarını yöneten bir uygulamayı ve müşteri siparişleri hakkında başka bir uygulamayı düşünün. Tüm olay abonelerinin her iki uygulamadan da olay almak istemesi pek olası değildir. Endişeleri ayrıştırmak için iki ad alanı konusu oluşturun: her uygulama için bir ad alanı. Olay tüketicilerinin gereksinimlerine uygun olarak konuya abone olmalarına izin verin. Küçük çözümler için tüm olayları tek bir konuya göndermeyi tercih edebilirsiniz.
Ad alanı konuları, çekme iletimi ve itme iletimini destekler. Çekme tesliminin, gereksinimlerinize göre doğru yaklaşım olup olmadığına karar vermenize yardımcı olması için çekme veya itme tesliminin ne zaman kullanılacağına bakın.
Olay abonelikleri
Olay aboneliği, tek bir konu başlığıyla ilişkilendirilmiş bir yapılandırma kaynağıdır. Diğer şeylerin yanı sıra, bir başlıkta kullanılabilen toplam olay kümesi içinden bir aboneye sunulacak olay koleksiyonunu tanımlamak üzere olay seçimi ölçütlerini ayarlamak için bir olay aboneliği kullanın. Olayları abonenin gereksinimlerine göre filtreleyebilirsiniz. Örneğin, olayları olay türlerine göre filtreleyebilirsiniz. Ayrıca, veri özelliği için bir JSON nesnesi kullanıyorsanız, olay veri özellikleri üzerinde filtre kriterlerini de tanımlayabilirsiniz. Kaynak özellikleri hakkında daha fazla bilgi için Event Grid REST API dokümantasyonuna bakınız.
Ad alanı konuları için abonelik oluşturmaya ilişkin bir örnek için bkz.: CLI kullanarak ad alanı konuları üzerinden iletileri yayımlama ve kullanma.
Not
Bir isim alanı konusu altındaki etkinlik abonelikleri, özel, alan adı, ortak ve sistem konuları için kullanılan modele (Event Grid Basic) kıyasla basitleştirilmiş bir kaynak modeline sahiptir. Daha fazla bilgi için bkz. Olay abonelikleri oluşturma, görüntüleme ve yönetme.
Çekme yöntemiyle teslimat
Çekme teslim modeliyle uygulamanız, iletileri kuyruk benzeri semantikle okumak için Event Grid’e bağlanır. Uygulamalar olayları kullanmak için Event Grid'e bağlandıkça, olay tüketim oranını ve zamanlamasını denetler. Tüketici uygulamaları, özel IP alanı kullanarak olayları okumak için Event Grid'e bağlanırken özel uç noktaları da kullanabilir.
Çekme teslimi, iletileri okumak ve ileti durumunu denetlemek için aşağıdaki işlemleri destekler: alma, onaylama, bırakma, reddetme ve kilidi yenileme. Daha fazla bilgi için, çekme teslimine genel bakış bölümüne bakın.
Çekme teslim yöntemi kullanılarak olaylar alınırken veri yapısı
Event Grid, olayları çekme teslimi kullanarak ilettiğinizde, sırasıyla event ve brokerProperties nesnelerini içeren bir nesne dizisi ekler. event özelliğinin değeri, yapılandırılmış içerik modunda teslim edilen CloudEvent'tir. brokerProperties nesnesi, teslim edilen CloudEvent ile ilişkili kilit belirtecini içerir. Aşağıdaki JSON nesnesi, iki olay döndüren bir alma işleminden alınan örnek bir yanıttır:
{
"value": [
{
"brokerProperties": {
"lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDXYS23Z+5Hq754VqQjxywE",
"deliveryCount": 2
},
"event": {
"specversion": "1.0",
"id": "A234-1234-1235",
"source": "/mycontext",
"time": "2018-04-05T17:31:00Z",
"type": "com.example.someeventtype",
"data": "some data"
}
},
{
"brokerProperties": {
"lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDLeaL+nRJLNq3/5NXd/T0b",
"deliveryCount": 1
},
"event": {
"specversion": "1.0",
"id": "B688-1234-1235",
"source": "/mycontext",
"type": "com.example.someeventtype",
"time": "2018-04-05T17:31:00Z",
"data": {
"somekey" : "value",
"someOtherKey" : 9
}
}
}
]
}
Anında iletim
Event Grid, itme teslimi ile olayları, push teslim modundaki olay aboneliğinde yapılandırılmış bir hedefe gönderir. Hedefin olayları alamama ihtimaline karşı sağlam bir yeniden deneme mantığı sağlar.
Önemli
Event Grid ad alanlarının anında iletme teslimi şu anda hedef olarak Azure Event Hubs'ı desteklemektedir. Gelecekte Event Grid ad alanları, Event Grid Basic tarafından desteklenen tüm hedefler de dahil olmak üzere daha fazla hedefi destekleyecektir.
Event Hubs olay iletimi
Event Grid, OLAYLARı AMQP kullanarak Event Hubs'a göndermek için Event Hubs SDK'sını kullanır. Olaylar, her bir öğesi bir CloudEvent içeren bir bayt dizisi olarak gönderilir.
İtme ve çekme iletimi
Event Grid, HTTP kullanarak olayların itme ve çekme yöntemiyle iletimini destekler. İtme teslimi ile, Event Grid'in olayları gönderdiği hedef olarak bir olay aboneliğinde, bir web kancasında veya bir Azure hizmetinde bir hedef tanımlarsınız. Çekme teslimi ile abone uygulamaları, olayları tüketmek için Event Grid'e bağlanır. Çekme teslimi, Event Grid ad alanındaki konular için desteklenir.
Önemli
Event Hubs, ad alanı konularına yönelik abonelikler için bir hedef olarak desteklenir. Gelecek sürümlerde Event Grid Ad Alanları, Event Grid Basic'te mevcut olan tüm hedefleri ve ek hedefleri destekleyecektir.
Push dağıtımı ile pull dağıtımı ne zaman kullanılır?
Aşağıda, çekme veya itme teslimini ne zaman kullanacağınıza karar vermenize yardımcı olacak genel yönergeler yer almaktadır.
Çekme yöntemiyle teslimat
- Olayları ne zaman alacağınız ile ilgili tam denetime ihtiyacınız vardır. Örneğin, uygulamanız her zaman çalışır durumda olmayabilir, yeterince kararlı olmayabilir veya verileri belirli zamanlarda işleyebilirsiniz.
- Olay tüketimi üzerinde tam denetime sahip olmanız gerekir. Örneğin, tüketici uygulamanızdaki bir aşağı akış hizmeti veya katmanında olayları işlemenizi engelleyen bir sorun vardır. Bu durumda, çekme teslim API'si tüketici uygulamasının daha sonra teslim edilebilmesi için zaten okunan bir olayı aracıya geri göndermesine olanak tanır.
- Olayları alırken özel bağlantılar kullanmak istersiniz; bu yalnızca çekme teslimiyle mümkündür, itme teslimiyle değil.
- Bir uç noktayı kullanıma açma ve anında iletim kullanma olanağına sahip değilsiniz, ancak olayları almak için Event Grid'e bağlanabilirsiniz.
Anında iletim
- Sistem durumu değişikliğinin oluştuğuna karar vermek için sürekli yoklama yapmaktan kaçınmak istiyorsunuz. Durum değişiklikleri gerçekleştiğinde olayları size göndermek için Event Grid'i kullanmayı tercih edebilirsiniz.
- Giden aramalar yapamayan bir uygulamanız var. Örneğin, kuruluşunuz veri sızdırma konusunda endişeli olabilir. Ancak, uygulamanız olayları genel uç nokta üzerinden alabilir.
İlgili içerik
- Event Grid’e giriş için bkz. Event Grid hakkında.
- Ad alanı konularını kullanmaya başlamak için bkz. Ad alanı konularını kullanarak olayları yayımlama.