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 makale, Event Grid'in HTTP üzerinden çekme teslimatını kullanmaya başlamadan önce temel bilgiler sağlamak için Azure Event Grid'e Giriş ve Kavramlar makalelerini temel alır. Temel kavramları, kaynak modellerini ve desteklenen ileti teslim modlarını kapsar. Bu belgenin sonunda, Event Grid'i kullanma konusunda size yol gösteren makalelere ve ayrıntılı kavramsal bilgiler sunan makalelere yararlı bağlantılar bulabilirsiniz.
Not
Bu belge, HTTP protokollerini kullanan Event Grid özelliklerini kullanmaya başlamanıza yardımcı olur. Bu makale, uygulamaları bulutta tümleştirmesi gereken kullanıcılar için uygundur. IoT cihaz verilerini iletmeniz gerekiyorsa bkz. Azure Event Grid'de Message Queuing Telemetrisi ve Aktarım (MQTT) Aracısı özelliğine genel bakış.
CloudEvents
Event Grid ad alanı konuları, JSON biçimindeHTTP protokol bağlamasını kullanarak Cloud Native Computing Foundation'ın (CNCF) açık standart CloudEvents 1.0 belirtimine uygun olayları kabul eder.
Daha fazla bilgi için bkz. CloudEvents desteği.
CloudEvents içerik modları
CloudEvents belirtimi, kullanabileceğiniz üç içerik modu tanımlar: ikili, yapılandırılmış ve toplu.
Önemli
Herhangi bir içerik moduyla metin (JSON, metin/*ve benzer türler) veya ikili kodlanmış olay verilerini değiştirebilirsiniz. İkili içerik modu yalnızca ikili veri göndermek için kullanılmaz.
İçerik modları kullandığınız kodlama, ikili veya metinle değil, olay verilerinin ve meta verilerinin nasıl tanımlandığı ve değiştirildiğinden söz eder. Yapılandırılmış içerik modu, hem bağlam özniteliklerinin hem de olay verilerinin HTTP yükünde bir araya geldiği JSON nesnesi gibi tek bir yapı kullanır. İkili içerik modu, HTTP üst bilgilerine eşlenen bağlam özniteliklerini ve Content-Type medya türü değerine göre kodlanmış olan HTTP yükü ile olay verilerini ayırır.
Daha fazla bilgi için bkz. CloudEvents içerik modları.
İletiler ve olaylar
CloudEvent genellikle bir sistemde bir oluşumu, yani sistem durumu değişikliğini duyuran olay verilerini taşır. Ancak CloudEvents'i kullanırken her türlü veriyi iletebilirsiniz. Örneğin, aşağı akış uygulamasına eylem istemek üzere bir komut iletisi göndermek için CloudEvents değişim biçimini kullanmak isteyebilirsiniz. Bir diğer örnek de Event Grid'in MQTT aracısından gelen iletileri bir konuya yönlendirmenizdir. Bu senaryoda, CloudEvents zarfında sarmalanmış bir MQTT iletisini yönlendiriyorsunuz.
Talep ile teslimat
Çekme teslimi ile uygulamanız, kuyruk benzeri semantiği kullanarak CloudEvents'i okumak için Event Grid'e bağlanır.
Çekme teslimi şu olay tüketimi avantajlarını sunar:
Olayları kendi hızınızda, ölçeklendirilmiş şekilde veya uygulamanızın desteklediği giriş hızında işleyin.
Olayları kendi seçtiğiniz bir zamanda tüketin. Örneğin, iş gereksinimleri göz önüne alındığında iletileri gece işleyin.
Verilerinizin özel IP alanı kullanması için olayları özel bir bağlantı üzerinden tüketin.
Not
- Ad alanları, tek bir konu türü içeren daha basit bir kaynak modeli sağlar. Event Grid şu anda kendi uygulama olaylarınızı ad alanı konuları aracılığıyla yayımlamayı desteklemektedir. Azure hizmetlerinden veya iş ortağı SaaS sistemlerinden olayları ad alanı konularını kullanarak tüketemezsiniz. Ayrıca, bir ad alanında sistem konuları, etki alanı konuları veya iş ortağı konuları oluşturamazsınız.
- Ad alanı konuları CloudEvents JSON biçimini destekler.
Kuyruk olayı abonelikleri
Olaylar alınırken veya olay durumunu yöneten işlemler kullanılırken, uygulama bir ad alanı HTTP uç noktası, konu adı ve kuyruk olayı aboneliğinin adını belirtir. Kuyruk olayı aboneliğinin deliveryMode değeri, *queue* olarak ayarlanmıştır. Kuyruk olay abonelikleri, olayları çekme teslim API'si aracılığıyla tüketmek için kullanılır. Bu kaynakların nasıl oluşturulacağı hakkında daha fazla bilgi için bkz. ad alanları, konular ve olay abonelikleri oluşturma.
Olaylar için filtreleme ölçütlerini tanımlamak için bir olay aboneliği kullanırsınız. Filtreleme ölçütlerini tanımlayarak, bu olay aboneliği aracılığıyla tüketim için kullanılabilecek olay kümesini etkili bir şekilde tanımlarsınız. Bir veya daha fazla abone (tüketici) uygulaması aynı ad alanı uç noktasına bağlanabilir ve aynı konuyu ve olay aboneliğini kullanabilir.
Çekme tabanlı teslimat işlemleri
Uygulamanız çekme teslimi ile çalışırken aşağıdaki işlemleri kullanır.
- Alma işlemi, Event Grid'e tek bir istek kullanarak bir veya daha fazla olayı okur. Varsayılan olarak, aracı olayların kullanılabilir duruma gelmesi için 60 saniyeye kadar bekler. Örneğin, olaylar ilk yayımlandığında teslim edilebilir hale gelir. Başarılı bir alma isteği sıfır veya daha fazla etkinlik döndürür. Olaylar kullanılabilir durumdaysa, istenen olay sayısına kadar mümkün olduğunca çok kullanılabilir olay döndürür. Event Grid ayrıca okunan her olay için bir kilit belirteci döndürür.
- Kilit belirteci, durumunu denetlemek için kullanabileceğiniz bir olayı tanımlayan bir tanıtıcı türüdür.
- Bir tüketici uygulaması bir olayı alıp işlediğinde bu olayı kabul eder . Bu işlem Event Grid'e olayı silmesini bildirir, böylece başka bir istemciye yeniden teslim edilmez. Tüketici uygulaması, süresi dolmadan önce kilit belirteçlerini belirterek tek bir istekle bir veya daha fazla belirteci kabul eder.
Diğer bazı durumlarda tüketici uygulamanız olayları serbest bırakmak veya reddetmek isteyebilir.
Tüketici uygulamanız, aldığı bir olayı serbest bırakarak Event Grid'e bu olayı işlemeye hazır olmadığını ve olayın yeniden teslim için hazır hale getirildiğini belirtir. Bunu, Event Grid'e geri dönecek olayları tanımlayan kilit belirteçleriyle yayın işlemini çağırarak yapar. Uygulamanız, olayın hemen yayınlanması gerekip gerekmediğini veya olay yeniden teslim için kullanılabilir duruma gelmeden önce bir gecikmenin kullanılıp kullanılmayabileceğini denetleyebilir.
Tüketici uygulamanızın olayı işlemesini engelleyen bir koşul (büyük olasılıkla kalıcı) varsa bir olayı reddetmeyi tercih edebilirsiniz. Örneğin, hatalı biçimlendirilmiş bir ileti başarıyla ayrıştırılamaz ve reddedilebilir. Ölü harf hedefi mevcutsa reddedilen olaylar ölü harf olarak işaretlenir. Aksi takdirde, bırakılırlar.
Çekme teslimat işlemlerinin yürütüldüğü kapsam
Bir alma, onaylama, bırakma, reddetme veya kilidi yenileme işlemini çağırdığınızda, bu eylemler olay aboneliği bağlamında gerçekleştirilir. Örneğin, bir olayı onaylarsanız, bu olay artık acknowledge eylemi çağrılırken kullanılan olay aboneliği aracılığıyla erişilebilir olmayacaktır. Diğer olay aboneliklerinde hala "aynı" olay mevcut olabilir. Olay aboneliği yayımlanan olayların bir kopyasını aldığından bu kullanılabilirlik mevcut. Bu olay kopyaları, olay abonelikleri arasında birbirinden tamamen farklıdır. Her olayın diğer olaylardan bağımsız kendi durumu vardır.
Çekmeli teslimat kullanılarak olaylar alındığında veri yapısı
Event Grid, çekme teslimi kullanarak olayları teslim ettiğinde, olay ve brokerProperties nesnelerini içeren bir nesne dizisi içerir. Olay ö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
}
}
}
]
}
İtme ve çekme yöntemi
Event Grid, HTTP kullanarak push ve pull olay teslimini destekler. Push teslimatı ile, Event Grid'in olayları gönderdiği bir olay aboneliğinde, bir web kancasına veya bir Azure hizmetine bir hedef tanımlarsınız. Çekme teslimi ile abone uygulamaları olayları kullanmak için Event Grid'e bağlanır. Event Grid ad alanındaki konular için "pull delivery" (çekme teslimi) 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.
Itme teslimi ile ç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.
Talep Üzerine 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.
- Etkinlik tüketimi üzerinde tam denetime sahip olmalısınız. Ö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 teslimat API'si, tüketici uygulamasının zaten okunan bir olayı daha sonra teslim edilebilmesi için aracısına 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.
Anlık teslimat
- 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ı 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.
Sonraki adımlar
Aşağıdaki makaleler, Event Grid'i kullanma hakkında bilgi sağlar veya kavramlar hakkında ek bilgiler sağlar.