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ünEventGrid 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.
Data Factory'de Düzenle sekmesine veya Azure Synapse Analytics'te Tümleştir sekmesine geçin.
Menüde Tetikleyici'yi ve ardından Yeni/Düzenle'yi seçin.
Tetikleyici Ekle sayfasında Tetikleyici seç'i ve ardından + Yeni'yi seçin.
Depolama olayları tetikleyici türünü seçin.
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.
Blob path begins with
veBlob 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 deBlob 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çerir2018/
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çerirshoes.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.csv
değ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ğunuBlob path begins with
unutmayın. Tetikleyici türü için diğer joker karakter eşleştirme türleri desteklenmez.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.
Tetikleyicinizin sıfır bayt içeren blobları yoksayıp yoksaymayacağını seçin.
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.
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.
İş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().fileName
dosya 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.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
vefileName
ö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ğerimoviesDB.csv
vardır. Bu değerler, örnekte işlem hattı parametrelerinesourceFolder
ve ile eşlenir vesourceFile
işlem hattı boyunca sırasıyla ve@pipeline().parameters.sourceFile
olarak@pipeline().parameters.sourceFolder
kullanılabilir.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 true ayarlanı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 blobPathBeginsWith
kullanı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 containername altı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.
İş 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.
İş 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.
İlgili içerik
- Tetikleyiciler hakkında daha fazla bilgi için bkz . İşlem hattı yürütme ve tetikleyiciler.
- İşlem hattındaki tetikleyici meta verilerine başvurmak için bkz . İşlem hattı çalıştırmalarında tetikleyici meta verilerine başvurma.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin