Azure depolamamda yaklaşık 800 bin blobum var. Bir blobTrigger ile masmavi işlev oluşturduğumda, depoda sahip olduğum tüm lekeleri işlemeye başlar. İşlevi yalnızca yeni ve güncelleştirilmiş bloklar için tetiklenecek şekilde nasıl yapılandırabilirim?Azure İşlevleri: blob tetikleyicisini yalnızca yeni olaylar için yapılandırın
cevap
Bunu şu anda yapmanın bir yolu yoktur. Dahili olarak, faturaları kontrol konteynır azure-webjobs-hosts
'a kaydederek işlediğimiz blobları izleriz. Makbuzu olmayan herhangi bir blob veya eski bir makbuz (blob ETag'a göre) işlenir (veya yeniden işlenir). Bu yüzden mevcut bloklarınız işleniyor - makbuzları yok. BlobTrigger
, yol deseniyle eşleşen bir kaptaki TÜM blobların en sonunda işlenmesini ve güncelleştirildiklerinde yeniden işlenmesini sağlamak için tasarlanmıştır.
Bu konuda tutkulu bir şekilde hissediyorsanız, repo here numaralı telefonumuzda, senaryo hakkındaki ayrıntılar için bir özellik talebinde bulunabilirsiniz.
Bunun için bir çeşit geçici çözüm buldunuz mu? Şu anda SQL Denetim günlüklerini işlemek için Azure İşlevlerinde bir BlobTrigger kullanmaya çalışıyorum.
Gelecek olan yeni günlüklere ihtiyacım var, ancak oldukça yüksek bir saklama süremiz var, bu nedenle tüm bu blobları bir NOOP ile (çeşitli ortamlarda ve makbuzlar da çalışan ana bilgisayar için) çok yavaş/kötü görünüyor Bu konuda gitmek için bir yol.
Açıklama için teşekkürler. Bir özellik talebi göndereceğim. Ama şimdilik herhangi bir geçici çözüm var mı? Tüm faturaları kendi başıma oluşturabilir miyim? – ebashmakov
Gerçek bir çözüm yok, tüm lekelerin işlenmesini sağlamanın kısa bir yolu yok. Bir noop fonksiyonu yazabilir ve makbuzları oluşturacak olan tüm blobların içine girmesine izin verebilirsiniz. Bu yapıldıktan sonra, gerçek işlev mantığınızı yerine koyun ve bu eski lekelerin ilerlemesi, yalnızca değiştirilirse yeniden işlenecektir. – mathewc
Evet, bunu da düşünüyordum, ama biraz uzun süreceğini çok korkuyorum. Her neyse deneyeceğim. – ebashmakov