Blob depolama olaylarına yanıt verme

Azure Depolama olayları, uygulamaların blob oluşturma ve silme gibi olaylara tepki vermesine olanak tanır. Karmaşık koda veya pahalı ve verimsiz yoklama hizmetlerine gerek kalmadan bunu yapar. En iyi kısmı yalnızca kullandığınız kadar ödemenizdir.

Blob depolama olayları Azure Event Grid kullanılarak Azure İşlevleri, Azure Logic Apps gibi abonelere ve hatta kendi http dinleyicinize gönderiliyor. Event Grid zengin yeniden deneme ilkeleri ve teslim edilemeyen iletiler aracılığıyla uygulamalarınıza güvenilir olay teslimi sağlar.

Blob depolamanın desteklediği olayların tam listesini görüntülemek için Blob depolama olayları şema makalesine bakın.

Yaygın Blob depolama olay senaryoları arasında görüntü veya video işleme, arama dizini oluşturma veya dosya odaklı herhangi bir iş akışı bulunur. Zaman uyumsuz dosya yüklemeleri olaylar için mükemmel bir uyum sağlar. Değişiklikler seyrek olduğunda ancak senaryonuz anında yanıt verilmesini gerektirdiğinde, olay tabanlı mimari özellikle verimli olabilir.

Blob depolama olaylarını denemek istiyorsanız şu hızlı başlangıç makalelerinden herhangi birine bakın:

Bu aracı kullanmak istiyorsanız: Bu makaleye bakın:
Azure portalı Hızlı Başlangıç: Azure portalıyla Blob depolama olaylarını web uç noktasına yönlendirme
PowerShell Hızlı Başlangıç: PowerShell ile depolama olaylarını web uç noktasına yönlendirme
Azure CLI Hızlı Başlangıç: Azure CLI ile depolama olaylarını web uç noktasına yönlendirme

Azure işlevlerini kullanarak Blob depolama olaylarına tepki vermenin ayrıntılı örneklerini görüntülemek için şu makalelere bakın:

Dekont

Depolama (genel amaçlı v1), Event Grid ile tümleştirmeyi desteklemez.

Olay modeli

Event Grid, olay iletilerini abonelere yönlendirmek için olay aboneliklerini kullanır. Bu görüntüde olay yayımcıları, olay abonelikleri ve olay işleyicileri arasındaki ilişki gösterilmektedir.

Event Grid Model

İlk olarak, bir uç noktayı bir olaya abone olun. Ardından bir olay tetiklendiğinde Event Grid hizmeti bu olayla ilgili verileri uç noktaya gönderir.

Görüntülemek için Blob depolama olayları şeması makalesine bakın:

  • Blob depolama olaylarının tam listesi ve her olayın nasıl tetiklendiğinden.

  • Event Grid'in bu olayların her biri için göndereceği verilere bir örnek.

  • Verilerde görünen her anahtar değer çiftinin amacı.

Olayları filtreleme

Blob olayları, oluşturulan/silinen nesnenin olay türüne, kapsayıcı adına veya adına göre filtrelenebilir . Event Grid'deki filtreler konunun başlangıcı veya sonuyla eşleşeceğinden, eşleşen bir konuya sahip olaylar aboneye gider.

Filtreleri uygulama hakkında daha fazla bilgi edinmek için bkz . Event Grid için olayları filtreleme.

Blob depolama olaylarının konusu şu biçimi kullanır:

/blobServices/default/containers/<containername>/blobs/<blobname>

Depolama hesabının tüm olaylarını eşleştirmek için konu filtrelerini boş bırakabilirsiniz.

Ön eki paylaşan bir kapsayıcı kümesinde oluşturulan bloblardan gelen olayları eşleştirmek için aşağıdaki gibi bir subjectBeginsWith filtre kullanın:

/blobServices/default/containers/containerprefix

Belirli bir kapsayıcıda oluşturulan bloblardan gelen olayları eşleştirmek için aşağıdaki gibi bir subjectBeginsWith filtre kullanın:

/blobServices/default/containers/containername/

Blob adı ön ekini paylaşan belirli bir kapsayıcıda oluşturulan bloblardan gelen olayları eşleştirmek için aşağıdaki gibi bir subjectBeginsWith filtre kullanın:

/blobServices/default/containers/containername/blobs/blobprefix

Blob sonekini paylaşan belirli bir kapsayıcıda oluşturulan bloblardan gelen olayları eşleştirmek için ".log" veya ".jpg" gibi bir subjectEndsWith filtre kullanın. Daha fazla bilgi için bkz . Event Grid Kavramları.

Olayları kullanma yöntemleri

Blob depolama olaylarını işleyen uygulamalar önerilen birkaç uygulamayı izlemelidir:

  • Olayları aynı olay işleyicisine yönlendirecek şekilde birden çok abonelik yapılandırılabildiği için, olayların belirli bir kaynaktan geldiğini varsaymak değil, beklediğiniz depolama hesabından geldiğinden emin olmak için iletinin konusunu denetlemek önemlidir.

  • Benzer şekilde eventType değerinin işlemeye hazır olduğunuzdan ve aldığınız tüm olayların beklediğiniz türlerde olacağını varsaymayın.

  • bir iletinin gelmesi için gereken süre boyunca hizmet düzeyi sözleşmesi yoktur. İletilerin 30 dakikadan iki saate kadar herhangi bir yere ulaşması sık karşılaşılan bir durum değildir. İletiler biraz gecikmeden sonra ulaşaalı olduğundan, nesneler hakkındaki bilgilerinizin hala güncel olup olmadığını anlamak için etag alanlarını kullanın. Etag alanını kullanmayı öğrenmek için bkz . Blob depolamada eşzamanlılığı yönetme.

  • İletiler sıralı bir şekilde ulaşaabildiği için, belirli bir nesnedeki olayların sırasını anlamak için sıralayıcı alanlarını kullanın. Sıralayıcı alanı, belirli bir blob adı için olayların mantıksal sırasını temsil eden bir dize değeridir. Aynı blob adındaki iki olayın göreli sırasını anlamak için standart dize karşılaştırmasını kullanabilirsiniz.

  • Depolama olayları, abonelere en az bir kez teslim edilmesini garanti eder ve bu da tüm iletilerin çıkışını sağlar. Ancak arka uç düğümleri ile hizmetler arasındaki yeniden denemeler veya aboneliklerin kullanılabilirliği nedeniyle yinelenen iletiler oluşabilir. İleti teslimi ve yeniden deneme hakkında daha fazla bilgi edinmek için bkz . Event Grid ileti teslimi ve yeniden deneme.

  • Blobda izin verilen işlem türlerini ve bloba erişmek için hangi istemci kitaplığı türlerini kullanmanız gerektiğini anlamak için blobType alanını kullanın. Geçerli değerler veya BlockBlobPageBlobşeklindedir.

  • Bloba erişmek için ve CloudAppendBlob oluşturucularıyla CloudBlockBlob url alanını kullanın.

  • Anlamadığınız alanları yoksayın. Bu uygulama, gelecekte eklenebilecek yeni özelliklere karşı dayanıklı kalmanıza yardımcı olacaktır.

  • Microsoft.Depolama emin olmak istiyorsanız. BlobCreated olayı yalnızca Bir Blok Blobu tamamen işlendiğinde tetiklenir, olayı , PutBlobveya PutBlockListFlushWithClose REST API çağrıları CopyBlobiçin filtreleyin. Bu API çağrıları Microsoft.Depolama tetikler. BlobCreated olayı yalnızca veriler Bir Blok Blobu'na tamamen işlendikten sonra oluşturulduğunda. Filtre oluşturmayı öğrenmek için bkz . Event Grid için olayları filtreleme.

Özellik desteği

Bu özellik için destek, Data Lake Storage 2. Nesil, Ağ Dosya Sistemi (NFS) 3.0 protokolü veya SSH Dosya Aktarım Protokolü (SFTP) etkinleştirilerek etkilenebilir. Bu özelliklerden herhangi birini etkinleştirdiyseniz bu özelliğin desteğini değerlendirmek için bkz. Azure Depolama hesaplarında Blob Depolama özellik desteği.

Sonraki adımlar

Event Grid hakkında daha fazla bilgi edinin ve Blob depolama olaylarını deneyin: