Aracılığıyla paylaş


Azure Event Grid ad alanı kavramları

Bu makalede, ad alanı konularıyla ilişkili ana kavramlar ve işlevler açıklanı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 bir içgörü sağlayan sistemle ilgili ayrı, kendi kendine çalışan bir gerçeği temsil ettiğinden genellikle olayı ayrı bir olay olarak adlandırıyoruz. Her olay, olay, time olay gerçekleşti ve benzersiz bir tanımlayıcı gibi source 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 hizmetinizdeki yeni bir siparişle ilgili bir olayın, siparişin durum gösterimine yönelik bir orderId özniteliği ve URL özniteliği 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 okuması veya bir web uygulaması sayfasına tıklama gibi bir veri noktası taşıyan iletilere "olaylar" olarak da adlandırılır. Bu tür olaylar genellikle içgörüler elde etmek ve bir eylem gerçekleştirmek için zaman penceresinde analiz edilir. Event Grid'in belgelerinde bu tür bir olayı veri noktası, akış verileri veya yalnızca telemetri olarak adlandırıyoruz. Diğer ileti türlerinin yanında bu tür olaylar Event Grid'in Message Queuing Telemetri Aktarımı (MQTT) aracı özelliğiyle birlikte kullanılır.

CloudEvents desteği

Event Grid ad alanı konuları, JSON biçiminde HTTP protokol bağlamasınıkullanarak Cloud Native Computing Foundation'ın (CNCF) açık standart CloudEvents 1.0 belirtimine uygun 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), türü vb. 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 kaynağı olan olay kaynağıyla 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 ad alanıyla ilgili kaynakları gruplandırabilir ve Bunları Azure aboneliğinizde tek bir birim olarak yönetebilirsiniz. Size benzersiz bir tam etki alanı adı (FQDN) verir.

Ad Alanı iki uç noktayı kullanıma sunar:

  • Ad alanı konularını kullanarak genel mesajlaşma gereksinimlerini destekleyen bir 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ında kapsanan kaynaklar için kullanılan yönetilen kimliklerin kapsayıcısıdır.

Ad alanları hakkında birkaç nokta daha aşağıdadır:

  • Ad alanı ve location özelliklerine sahip tags izlenen bir kaynaktır ve oluşturulduktan sonra üzerinde resources.azure.combulunabilir.
  • Ad alanının adı 3-50 karakter uzunluğunda olabilir. Alfasayısal ve kısa çizgi (-) içerebilir ve boşluk içermez.
  • Adın bölge başına benzersiz olması gerekir.

İşleme 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ı.

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 konulara genellikle ad alanı konuları olarak değindik.

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şturacağınız konusunda karar vermeniz gerekir. 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 isteme olasılığı düşüktür. Endişeleri ayrıştırmak için iki ad alanı konusu oluşturun: her uygulama için bir ad alanı. Olay tüketicilerinin gereksinimlerine göre konuya abone olmasına izin verin. Küçük çözümler için tüm olayları tek bir konuya göndermeyi tercih edebilirsiniz.

Ad alanı konuları çekme teslimi ve anında iletme teslimi destekler. Gereksinimleriniz doğrultusunda çekme tesliminin doğru yaklaşım olup olmadığını belirlemenize yardımcı olması için çekme veya gönderme 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ı üzere, bir konu başlığında bulunan toplam olay kümesi dışında abonenin kullanabileceği olay koleksiyonunu tanımlamak üzere olay seçim ölçütlerini ayarlamak için bir olay aboneliği kullanırsınız. Olayları abonenin gereksinimlerine göre filtreleyebilirsiniz. Örneğin, olayları olay türlerine göre filtreleyebilirsiniz. Ayrıca, veri özelliğinin değeri olarak bir JSON nesnesi kullanıyorsanız olay veri özelliklerinde filtre ölçütleri tanımlayabilirsiniz. Kaynak özellikleri hakkında daha fazla bilgi için Event Grid REST API'sinde denetim düzlemi işlemlerini arayın.

Konu başlığını ve ilişkili olay aboneliklerini gösteren diyagram.

Ad alanı konuları için abonelik oluşturma örneği için bkz . CLI kullanarak ad alanı konularını kullanarak iletileri yayımlama ve kullanma.

Not

Ad alanı konu başlığı altındaki olay abonelikleri, özel, etki alanı, iş ortağı ve sistem konuları (Event Grid Basic) için kullanılanla karşılaştırıldığında basitleştirilmiş bir kaynak modeli içerir. Daha fazla bilgi için bkz. Olay abonelikleri oluşturma, görüntüleme ve yönetme.

Çekme teslimi

Çekme teslimi ile uygulamanız, kuyruk benzeri semantiği kullanarak iletileri 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ı ve zamanlaması onlar tarafından denetlenir. 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 bkz . Çekme teslimlerine genel bakış.

Çekme teslimi kullanılarak olaylar alınırken veri şekli

Event Grid, çekme teslimi kullanarak olayları teslim ederken olay ve brokerProperties nesnelerini içeren bir nesne dizisi içerir. Olay özelliğinin değeri, yapılandırılmış con çadır modu olarak sunulan CloudEvent değeridir. 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 iletme teslimi

Event Grid, anında iletme teslimi ile olayları anında iletme (teslim modunda) olay aboneliğinde yapılandırılmış bir hedefe gönderir. Hedefin olayları alamaması durumunda 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 teslimi

Event Grid, AMQP kullanarak Event Hubs'a olay göndermek için Event Hubs SDK'sını kullanır. Olaylar, dizideki her öğe cloudEvent içeren bir bayt dizisi olarak gönderilir.

Gönderme ve çekme teslimi

Event Grid, HTTP kullanarak gönderme ve çekme olayı teslimi destekler. Anında iletme ile event grid'in olayları gönderdiği bir olay aboneliğinde, web kancasında veya Azure hizmetinde bir hedef tanımlarsınız. Çekme teslimi ile abone uygulamaları olayları kullanmak 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.

İlgili kaynak türlerini içeren gönderim teslimi ve çekme teslimini gösteren üst düzey diyagram.

Gönderme teslimi ve çekme teslimi ne zaman kullanılır?

Çekme veya gönderme teslimini ne zaman kullanacağınıza karar vermenize yardımcı olacak genel yönergeler aşağıdadır.

Çekme teslimi

  • 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 istiyorsunuz. Bu, gönderme teslimiyle değil yalnızca çekme teslimiyle mümkündür.
  • Bir uç noktayı kullanıma sunma ve anında iletme teslimini kullanma olanağınız yoktur, ancak olayları kullanmak için Event Grid'e bağlanabilirsiniz.

Anında iletme teslimi

  • 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 çağrı yapabilen 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.