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:
- Öğretici: Databricks Delta tablosunu güncelleştirmek için Azure Data Lake Storage olaylarını kullanın.
- Öğretici: Event Grid kullanarak karşıya yüklenen görüntüleri yeniden boyutlandırmayı otomatikleştirme
Not
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.
İ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
Bir 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.
İletilerin çoğu neredeyse gerçek zamanlıya ulaşsa da, iletinin gelmesi için gereken süre boyunca hizmet düzeyi sözleşmesi yoktur. Bazı durumlarda, iletinin gelmesi birkaç dakika sürebilir. İ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ın nasıl kullanılacağını öğrenmek için bkz . Blob Depolama'da 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
BlockBlob
PageBlob
şeklindedir.Bloba erişmek için ve
CloudAppendBlob
oluşturucularıylaCloudBlockBlob
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.Storage.BlobCreated olayının yalnızca Bir Blok Blobu tamamen işlendiğinde tetiklendiğinden emin olmak istiyorsanız, ,
PutBlob
PutBlockList
veyaFlushWithClose
REST API çağrılarıCopyBlob
için olayı filtreleyin. Bu API çağrıları, yalnızca veriler Bir Blok Blob'a tamamen işlendikten sonra Microsoft.Storage.BlobCreated olayını tetikler. 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 özelliği desteği.
Sonraki adımlar
Event Grid hakkında daha fazla bilgi edinin ve Blob depolama olaylarını deneyin: