Aracılığıyla paylaş


Depolama olayına yanıt olarak işlem hattı çalıştıran bir tetikleyici oluşturma

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

İpucu

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

Bu makalede, Azure Data Factory veya Azure Synapse Analytics işlem hatlarınızda oluşturabileceğiniz depolama olayı tetikleyicileri açıklanmaktadır.

Olay odaklı mimari, üretim, algılama, tüketim ve olaylara tepkiyi içeren yaygın bir veri tümleştirme düzenidir. Veri tümleştirme senaryoları genellikle müşterilerin bir Azure Depolama hesabındaki olaylardan tetiklenen işlem hatlarını tetiklemesi (Azure Blob Depolama hesabındaki bir dosyanın gelmesi veya silinmesi gibi) gerektirir. Data Factory ve Azure Synapse Analytics işlem hatları Azure Event Grid ile yerel olarak tümleşir ve bu sayede bu tür olaylar üzerinde işlem hatlarını tetikleyebilirsiniz.

Depolama olayı tetikleyicisi ile ilgili dikkat edilmesi gerekenler

Depolama olayı tetikleyicilerini kullanırken aşağıdaki noktaları göz önünde bulundurun:

  • Bu makalede açıklanan tümleştirme, Azure Event Grid'e bağlıdır. Aboneliğinizin Event Grid kaynak sağlayıcısına kayıtlı olduğundan emin olun. Daha fazla bilgi için bkz. Kaynak sağlayıcıları ve türleri. Eylemi yapabilmeniz Microsoft.EventGrid/eventSubscriptions/ gerekir. Bu eylem yerleşik rolün EventGrid EventSubscription Contributor bir parçasıdır.
  • Bu özelliği Azure Synapse Analytics'te kullanıyorsanız aboneliğinizi Data Factory kaynak sağlayıcısına da kaydettiğinizden emin olun. Aksi takdirde, "Olay Aboneliği oluşturulamadı" iletisini alırsınız.
  • Blob Depolama hesabı özel bir uç noktanın arkasında bulunuyorsa ve genel ağ erişimini engelliyorsa, Blob Depolama'dan Event Grid'e iletişimlere izin vermek için ağ kurallarını yapılandırmanız gerekir. Event Grid belgelerini izleyerek Event Grid gibi güvenilen Azure hizmetlerine depolama erişimi verebilir, depolama belgelerini izleyebilir veya Event Grid için sanal ağ adres alanına eşlenen özel uç noktaları yapılandırabilirsiniz.
  • Depolama olayı tetikleyicisi şu anda yalnızca Azure Data Lake Storage 2. Nesil ve Genel amaçlı sürüm 2 depolama hesaplarını destekler. Güvenli Dosya Aktarım Protokolü (SFTP) depolama olaylarıyla çalışıyorsanız, filtreleme bölümü altında da SFTP Veri API'sini belirtmeniz gerekir. Event Grid sınırlaması nedeniyle Data Factory, depolama hesabı başına en fazla 500 depolama olayı tetikleyicisini destekler.
  • Yeni bir depolama olayı tetikleyicisi oluşturmak veya var olan bir tetikleyiciyi değiştirmek için, hizmette oturum açmak ve depolama olayı tetikleyicisini yayımlamak için kullandığınız Azure hesabının depolama hesabında uygun rol tabanlı erişim denetimi (Azure RBAC) izni olmalıdır. Başka izin gerekmez. Azure Data Factory ve Azure Synapse Analytics için hizmet sorumlusunun depolama hesabı veya Event Grid için özel izne ihtiyacı yoktur . Erişim denetimi hakkında daha fazla bilgi için Rol tabanlı erişim denetimi bölümüne bakın.
  • Depolama hesabınıza bir Azure Resource Manager kilidi uyguladıysanız bu, blob tetikleyicisinin blob oluşturma veya silme becerisini etkileyebilir. ReadOnly Kilit hem oluşturma hem de silmeyi engellerkenDoNotDelete, kilit silmeyi engeller. Tetikleyicilerinizle ilgili sorunları önlemek için bu kısıtlamaları hesaba eklediğinizden emin olun.
  • Veri akışı havuzlarından tetikleme mekanizması olarak dosya varış tetikleyicileri önermiyoruz. Veri akışları, verilerinizin tamamen işlenmesinden önce yanlışlıkla bir dosya varış olayını tetikleyebilen hedef klasörde bir dizi dosya yeniden adlandırma ve bölüm dosyası karıştırma görevi gerçekleştirir.

Kullanıcı arabirimiyle tetikleyici oluşturma

Bu bölümde, Azure Data Factory ve Azure Synapse Analytics işlem hattı kullanıcı arabirimi (UI) içinde depolama olayı tetikleyicisi oluşturma işlemi gösterilmektedir.

  1. Data Factory'de Düzenle sekmesine veya Azure Synapse Analytics'te Tümleştir sekmesine geçin.

  2. Menüde Tetikleyici'yi ve ardından Yeni/Düzenle'yi seçin.

  3. Tetikleyici Ekle sayfasında Tetikleyici seç'i ve ardından + Yeni'yi seçin.

  4. Depolama olayları tetikleyici türünü seçin.

  5. Azure aboneliği açılan listesinden veya depolama hesabı kaynak kimliğini kullanarak el ile depolama hesabınızı seçin. Olayların gerçekleşmesini istediğiniz kapsayıcıyı seçin. Kapsayıcı seçimi gereklidir, ancak tüm kapsayıcıların seçilmesi çok sayıda olaya yol açabilir.

  6. Blob path begins with ve Blob path begins with özellikleri, olayları almak istediğiniz kapsayıcıları, klasörleri ve blob adlarını belirtmenize olanak tanır. Depolama olayı tetikleyiciniz bu özelliklerden en az birinin tanımlanmasını gerektirir. Bu makalenin devamında yer alan örneklerde gösterildiği gibi hem hem de Blob path begins with Blob path begins with özellikler için çeşitli desenler kullanabilirsiniz.

    • Blob path begins with: Blob yolu bir klasör yolu ile başlamalıdır. Geçerli değerler ve değerlerini içerir 2018/ 2018/april/shoes.csv. Kapsayıcı seçilmediyse bu alan seçilemiyor.
    • Blob path begins with: Blob yolu bir dosya adı veya uzantısıyla bitmelidir. Geçerli değerler ve değerlerini içerir shoes.csv .csv. Kapsayıcı ve klasör adları belirtildiğinde bir /blobs/ kesimle ayrılmalıdır. Örneğin, adlı orders bir kapsayıcının /orders/blobs/2018/april/shoes.csvdeğeri olabilir. Herhangi bir kapsayıcıda klasör belirtmek için, baştaki / karakteri atla. Örneğin, april/shoes.csv herhangi bir kapsayıcıda adlı bir klasörde adlı shoes.csv april herhangi bir dosyada bir olayı tetikler.

    bir depolama olayı tetikleyicisinde izin verilen tek desen eşleştirmesinin ve Blob path ends with olduğunu Blob path begins with unutmayın. Tetikleyici türü için diğer joker karakter eşleştirme türleri desteklenmez.

  7. Tetikleyicinizin Blob tarafından oluşturulan bir olaya mı, silinen bir Blob olayına mı yoksa her ikisine birden mi yanıt vereceğini seçin. Belirtilen depolama konumunuzda her olay, tetikleyiciyle ilişkili Data Factory ve Azure Synapse Analytics işlem hatlarını tetikler.

    Depolama olayı tetikleyici oluşturma sayfasını gösteren ekran görüntüsü.

  8. Tetikleyicinizin sıfır bayt içeren blobları yoksayıp yoksaymayacağını seçin.

  9. Tetikleyicinizi yapılandırdıktan sonra İleri: Veri önizleme'yi seçin. Bu ekranda depolama olayı tetikleyici yapılandırmanızla eşleşen mevcut bloblar gösterilir. Belirli filtreleriniz olduğundan emin olun. Çok geniş filtreleri yapılandırmak, oluşturulan veya silinen çok sayıda dosyayla eşleşebilir ve maliyetinizi önemli ölçüde etkileyebilir. Filtre koşullarınız doğrulandıktan sonra Son'u seçin.

    Depolama olayı tetikleyicisi önizleme sayfasını gösteren ekran görüntüsü.

  10. Bu tetikleyiciye bir işlem hattı eklemek için işlem hattı tuvaline gidin ve Tetikleyici>Yeni/Düzenle'yi seçin. Yan bölme göründüğünde Tetikleyici seç açılan listesini seçin ve oluşturduğunuz tetikleyiciyi seçin. Yapılandırmanın doğru olduğunu onaylamak için İleri: Veri önizleme'yi seçin. Ardından, veri önizlemesinin doğru olduğunu doğrulamak için İleri'yi seçin.

  11. İşlem hattınızda parametreler varsa, bunları Tetikleyici Çalıştırma Parametreleri yan bölmesinde belirtebilirsiniz. Depolama olayı tetikleyicisi, ve özelliklerinde @triggerBody().folderPath blobun klasör yolunu ve @triggerBody().fileNamedosya adını yakalar. Bu özelliklerin değerlerini bir işlem hattında kullanmak için özellikleri işlem hattı parametreleriyle eşlemeniz gerekir. Özellikleri parametrelerle eşledikten sonra, işlem hattı boyunca ifade aracılığıyla tetikleyici tarafından yakalanan değerlere @pipeline().parameters.parameterName erişebilirsiniz. Ayrıntılı bir açıklama için bkz . İşlem hatlarında tetikleyici meta verilerine başvurma.

    Depolama olayı tetikleyicisi özelliklerini işlem hattı parametrelerine eşlemeyi gösteren ekran görüntüsü.

    Yukarıdaki örnekte tetikleyici, kapsayıcı örnek-verilerindeki olay testi klasöründe .csv ile biten bir blob yolu oluşturulduğunda tetiklenmesi için yapılandırılır. folderPath ve fileName özellikleri yeni blobun konumunu yakalar. Örneğin, sample-data/event-testing yoluna MoviesDB.csv eklendiğinde değeri @triggerBody().folderPath sample-data/event-testing ve @triggerBody().fileName değeri moviesDB.csvvardır. Bu değerler, örnekte işlem hattı parametrelerine sourceFolder ve ile eşlenir ve sourceFileişlem hattı boyunca sırasıyla ve @pipeline().parameters.sourceFileolarak @pipeline().parameters.sourceFolder kullanılabilir.

  12. bitirdikten sonra Son'u seçin.

JSON şeması

Aşağıdaki tabloda, depolama olayı tetikleyicileriyle ilgili şema öğelerine genel bir bakış sağlanmaktadır.

JSON öğesi Açıklama Tür İzin verilen değerler Zorunlu
kapsam Depolama hesabının Azure Resource Manager kaynak kimliği. String Azure Resource Manager Kimliği Evet.
etkinlikler Bu tetikleyicinin tetiklemesine neden olan olayların türü. Dizi Microsoft.Storage.BlobCreated, Microsoft.Storage.BlobDeleted Evet, bu değerlerin herhangi bir bileşimi.
blobPathBeginsWith Blob yolu tetikleyicinin tetikleyebilmesi için sağlanan desenle başlamalıdır. Örneğin, /records/blobs/december/ yalnızca kapsayıcının altındaki klasördeki december bloblar için tetikleyiciyi records tetikler. String Şu özelliklerden en az biri için bir değer sağlayın: blobPathBeginsWith veya blobPathEndsWith.
blobPathEndsWith Blob yolunun tetikleyicinin tetiklemesi için sağlanan desenle bitmesi gerekir. Örneğin, december/boxes.csv yalnızca bir december klasörde adlı boxes bloblar için tetikleyiciyi tetikler. String Şu özelliklerden en az biri için bir değer sağlayın: blobPathBeginsWith veya blobPathEndsWith.
ignoreEmptyBlobs Sıfır bayt bloblarının bir işlem hattı çalıştırması tetikleyip tetiklemeyeceği. Bu, varsayılan olarak olarak trueayarlanır. Boolean true veya false Hayır

Depolama olayı tetikleyicileri örnekleri

Bu bölümde depolama olayı tetikleyici ayarlarına örnekler sağlanmaktadır.

Önemli

Aşağıdaki örneklerde gösterildiği gibi, kapsayıcı ve klasör, kapsayıcı ve dosya ya da kapsayıcı, klasör ve dosya belirttiğinizde yolun kesimini eklemeniz /blobs/ gerekir. için blobPathBeginsWithkullanıcı arabirimi, tetikleyici JSON'daki klasör ve kapsayıcı adı arasına otomatik olarak ekler /blobs/ .

Özellik Örnek Açıklama
Blob path begins with /containername/ Kapsayıcıdaki herhangi bir blob için olayları alır.
Blob path begins with /containername/blobs/foldername/ Kapsayıcı ve foldername klasördeki containername tüm bloblar için olayları alır.
Blob path begins with /containername/blobs/foldername/subfoldername/ Bir alt klasöre de başvurabilirsiniz.
Blob path begins with /containername/blobs/foldername/file.txt Kapsayıcının altındaki containername klasörde adlı file.txt foldername bir blob için olayları alır.
Blob path ends with file.txt Herhangi bir yolda adlı file.txt blob için olayları alır.
Blob path ends with /containername/blobs/file.txt kapsayıcısının containernamealtında adlı file.txt bir blob için olayları alır.
Blob path ends with foldername/file.txt Herhangi bir kapsayıcının foldername altındaki klasörde adlı file.txt bir blob için olayları alır.

Rol tabanlı erişim denetimi

Data Factory ve Azure Synapse Analytics işlem hatları, blob olaylarına bağlı işlem hatlarını dinleme, güncelleştirmelere abone olma ve tetikleme işlem hatlarına yetkisiz erişimin kesinlikle yasak olduğundan emin olmak için Azure rol tabanlı erişim denetimini (Azure RBAC) kullanır.

  • Yeni bir depolama olayı tetikleyicisini başarıyla oluşturmak veya mevcut bir tetikleyiciyi güncelleştirmek için hizmette oturum açan Azure hesabının ilgili depolama hesabına uygun erişime sahip olması gerekir. Aksi takdirde, işlem "Erişim Reddedildi" iletisiyle başarısız olur.
  • Data Factory ve Azure Synapse Analytics'in Event Grid örneğinde özel bir izne ihtiyacı yoktur ve işlem için Data Factory veya Azure Synapse Analytics hizmet sorumlusuna özel RBAC izni atamanız gerekmez .

Depolama olayı tetikleyicileri için aşağıdaki RBAC ayarlarından herhangi biri çalışır:

  • Depolama hesabında sahip rolü
  • Depolama hesabına katkıda bulunan rolü
  • Microsoft.EventGrid/EventSubscriptions/Write depolama hesabına izin verme /subscriptions/####/resourceGroups/####/providers/Microsoft.Storage/storageAccounts/storageAccountName

Özellikle:

  • Veri fabrikasında (örneğin geliştirme ortamında) yazarken, oturum açan Azure hesabının önceki izne sahip olması gerekir.
  • Sürekli tümleştirme ve sürekli teslim aracılığıyla yayımladığınızda, Azure Resource Manager şablonunu test veya üretim fabrikasında yayımlamak için kullanılan hesabın önceki izne sahip olması gerekir.

Hizmetin iki sözü nasıl yerine getireci olduğunu anlamak için bir adım geri gidip arka planda göz atalım. Data Factory/Azure Synapse Analytics, Depolama ve Event Grid arasında tümleştirmeye yönelik üst düzey iş akışları aşağıdadır.

Yeni depolama olayı tetikleyicisi oluşturma

Bu üst düzey iş akışı, Data Factory'nin depolama olayı tetikleyicisi oluşturmak için Event Grid ile nasıl etkileşim kuracağını açıklar. Veri akışı Azure Synapse Analytics'te aynıdır. Azure Synapse Analytics işlem hatları aşağıdaki diyagramda veri fabrikasının rolünü üstleniyor.

Depolama olayı tetikleyicisi oluşturma iş akışını gösteren diyagram.

İş akışlarından iki dikkat çekici açıklama balonu:

  • Data Factory ve Azure Synapse Analytics, depolama hesabıyla doğrudan iletişim kurmaz. Bunun yerine abonelik oluşturma isteği Event Grid tarafından iletilir ve işlenir. Hizmetin bu adım için depolama hesabına erişmesine izin gerekmez.
  • Erişim denetimi ve izin denetimi hizmet içinde gerçekleşir. Hizmet bir depolama olayına abone olma isteği göndermeden önce kullanıcının iznini denetler. Daha açık belirtmek gerekirse, oturum açmış olan ve depolama olayı tetikleyicisini oluşturmaya çalışan Azure hesabının ilgili depolama hesabına uygun erişime sahip olup olmadığını denetler. İzin denetimi başarısız olursa tetikleyici oluşturma da başarısız olur.

Depolama olayı tetikleyici işlem hattı çalıştırması

Bu üst düzey iş akışı, depolama olayı tetikleyici işlem hatlarının Event Grid üzerinden nasıl çalıştığını açıklar. Azure Synapse Analytics için veri akışı aynıdır ve Azure Synapse Analytics işlem hatları aşağıdaki diyagramda Data Factory rolünü üstleniyor.

İşlem hattı çalıştırmalarını tetikleyen depolama olayının iş akışını gösteren diyagram.

İş akışındaki fark edilebilir üç açıklama balonu, hizmet içindeki işlem hatlarını tetikleyen olayla ilgilidir:

  • Event Grid, depolama alanı iletiyi sisteme bıraktığında iletiyi en kısa sürede aktaran bir Gönderme modeli kullanır. Bu yaklaşım, Çekme sisteminin kullanıldığı Kafka gibi bir mesajlaşma sisteminden farklıdır.

  • Olay tetikleyicisi, gelen ileti için etkin bir dinleyici görevi görür ve ilişkili işlem hattını düzgün bir şekilde tetikler.

  • Depolama olayı tetikleyicisinin kendisi depolama hesabıyla doğrudan iletişim kurmaz.

    • Depolama hesabındaki verileri işlemek için işlem hattında bir Kopyalama etkinliği veya başka bir etkinliğiniz varsa, hizmet bağlı hizmette depolanan kimlik bilgilerini kullanarak depolama hesabıyla doğrudan iletişim kurar. Bağlı hizmetin uygun şekilde ayarlandığından emin olun.
    • İşlem hattında depolama hesabına başvuru yapmazsanız, hizmete depolama hesabına erişim izni vermeniz gerekmez.