Membuat pemicu yang menjalankan alur sebagai respons terhadap peristiwa penyimpanan
BERLAKU UNTUK:Azure Data Factory Azure Synapse Analytics
Tip
Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!
Artikel ini menjelaskan Pemicu Peristiwa Penyimpanan yang dapat Anda buat di alur Data Factory atau Synapse.
Arsitektur berbasis peristiwa (EDA) adalah pola integrasi data umum yang melibatkan produksi, deteksi, konsumsi, dan reaksi terhadap peristiwa. Skenario integrasi data sering kali mengharuskan pelanggan untuk memicu alur berdasarkan peristiwa yang terjadi di akun penyimpanan, seperti kedatangan atau penghapusan file di akun Azure Blob Storage. Alur Data Factory dan Synapse terintegrasi secara bawaan dengan Azure Event Grid, yang memungkinkan Anda memicu alur pada peristiwa tersebut.
Catatan
Integrasi yang dijelaskan dalam artikel ini bergantung pada Azure Event Grid. Pastikan langganan Anda terdaftar di penyedia sumber daya Event Grid. Untuk informasi selengkapnya, lihat Penyedia dan jenis sumber daya. Anda harus dapat melakukan tindakan Microsoft.EventGrid/eventSubscriptions/*. Tindakan ini merupakan bagian dari peran bawaan EventGrid EventSubscription Contributor.
Penting
Jika Anda menggunakan fitur ini di Azure Synapse Analytics, pastikan langganan Anda juga terdaftar di penyedia sumber daya Data Factory, atau Jika tidak, Anda akan mendapatkan kesalahan yang menyatakan bahwa pembuatan "Langganan Peristiwa" gagal.
Catatan
Jika akun penyimpanan blob berada di belakang titik akhir privat dan memblokir akses jaringan publik, Anda perlu mengonfigurasi aturan jaringan untuk mengizinkan komunikasi dari penyimpanan blob ke Azure Event Grid. Anda dapat memberikan akses penyimpanan ke layanan Azure tepercaya, seperti Event Grid, mengikuti dokumentasi Penyimpanan, atau mengonfigurasi titik akhir privat untuk Event Grid yang dipetakan ke ruang alamat VNet, dengan mengikuti dokumentasi Event Grid
Membuat pemicu dengan antarmuka pengguna
Bagian ini menunjukkan cara membuat pemicu peristiwa penyimpanan dalam Antarmuka Pengguna alur Azure Data Factory dan Synapse.
Beralih ke tab Edit di Data Factory, atau tab Integrasikan di Azure Synapse.
Pilih Pemicu pada menu, lalu pilih Baru/Edit.
Pada halaman Tambahkan Pemicu, pilih Pilih pemicu..., lalu pilih +Baru.
Pilih Jenis Pemicu Peristiwa Penyimpanan
Pilih akun penyimpanan Anda dari menu pilihan langganan Azure atau gunakan ID sumber daya akun Penyimpanannya secara manual. Pilih di kontainer mana Anda ingin peristiwa berlangsung. Pemilihan kontainer diperlukan, tetapi berhati-hatilah bahwa memilih semua kontainer dapat menyebabkan banyak peristiwa.
Catatan
Pemicu Peristiwa Penyimpanan saat ini hanya mendukung akun penyimpanan Azure Data Lake Storage Gen2 dan General-purpose version 2. Jika Anda bekerja dengan Peristiwa Penyimpanan SFTP, Anda perlu menentukan SFTP Data API di bawah bagian pemfilteran juga. Karena batasan Azure Event Grid, Azure Data Factory hanya mendukung maksimal 500 pemicu peristiwa penyimpanan per akun penyimpanan. Jika Anda mencapai batas, silakan hubungi dukungan untuk rekomendasi dan meningkatkan batas saat dievaluasi oleh tim Event Grid.
Catatan
Untuk membuat Pemicu Peristiwa Penyimpanan baru atau yang sudah ada, akun Azure yang digunakan untuk masuk ke layanan dan menerbitkan pemicu peristiwa penyimpanan harus memiliki izin kontrol akses berbasis peran (Azure RBAC) yang sesuai pada akun penyimpanan. Tidak ada izin tambahan yang diperlukan: Perwakilan Layanan untuk Azure Data Factory dan Azure Synapse tidak memerlukan izin khusus untuk akun Penyimpanan atau Azure Event Grid. Untuk informasi selengkapnya tentang kontrol akses, lihat bagian Kontrol akses berbasis peran.
Jalur blob dimulai dengan dan Jalur blob berakhir dengan properti memungkinkan Anda untuk menentukan kontainer, folder, dan nama blob yang ingin Anda terima peristiwanya. Pemicu peristiwa penyimpanan Anda memerlukan setidaknya salah satu properti ini untuk didefinisikan. Anda dapat menggunakan berbagai pola untukJalur blob dimulai dengan dan Jalur blob diakhiri dengan properti, seperti yang ditunjukkan dalam contoh nanti di artikel ini.
- Jalur blob dimulai dengan: Jalur blob harus dimulai dengan jalur folder. Nilai yang valid meliputi
2018/
dan2018/april/shoes.csv
. Bidang ini tidak dapat dipilih jika kontainer tidak dipilih. - Jalur blob diakhiri dengan: Jalur blob harus diakhiri dengan nama file atau ekstensi. Nilai yang valid meliputi
shoes.csv
dan.csv
. Nama kontainer dan folder, jika ditentukan, nama tersebut harus dipisahkan oleh/blobs/
segmen. Misalnya, kontainer bernama 'urutan' dapat memiliki nilai/orders/blobs/2018/april/shoes.csv
. Untuk menentukan folder dalam kontainer apa pun, hilangkan karakter '/' jarak antar baris. Misalnya,april/shoes.csv
akan memicu peristiwa pada file apa pun yang dinamaishoes.csv
dalam folder yang disebut 'april' di kontainer apa pun. - Perhatikan bahwa jalur Blob dimulai dengan dan diakhiri dengansatu-satunya pencocokan pola yang diizinkan di Pemicu Peristiwa Penyimpanan. Jenis pencocokan kartubebas lainnya tidak didukung untuk jenis pemicu.
- Jalur blob dimulai dengan: Jalur blob harus dimulai dengan jalur folder. Nilai yang valid meliputi
Pilih apakah pemicu Anda akan merespons peristiwa yang dibuat Blob, peristiwa yang dihapus Blob, atau keduanya. Di lokasi penyimpanan yang Anda tentukan, setiap peristiwa akan memicu alur Data Factory dan Synapse yang terkait dengan pemicu.
Pilih apakah pemicu Anda mengabaikan blob dengan nol byte atau tidak.
Setelah Mengonfigurasi pemicu, klik Berikutnya: Pratinjau data. Layar ini menampilkan blob yang ada yang cocok dengan konfigurasi pemicu peristiwa penyimpanan Anda. Pastikan Anda memiliki filter tertentu. Mengonfigurasikan filter yang terlalu luas dapat mencocokkan sejumlah besar file yang dibuat/dihapus dan dapat berdampak signifikan pada biaya Anda. Setelah kondisi filter Anda diverifikasi, klik Selesai.
Untuk melampirkan alur ke pemicu ini, buka kanvas alur dan klik Pemicu dan pilih Baru/Edit. Ketika navigasi samping muncul, klik pada daftar dropdown Pilih pemicu... dan pilih pemicu yang Anda buat. Klik Berikutnya: Pratinjau data untuk mengonfirmasi bahwa konfigurasi sudah benar lalu Berikutnya untuk memvalidasi bahwa pratinjau Data sudah benar.
Jika alur Anda memiliki parameter, Anda dapat menentukannya pada pemicu yang menjalankan parameter side nav. Pemicu peristiwa penyimpanan mengambil jalur folder dan nama file blob ke properti
@triggerBody().folderPath
dan@triggerBody().fileName
. Untuk menggunakan nilai properti ini dalam alur, Anda harus memetakan properti ke parameter alur. Setelah memetakan properti ke parameter, Anda dapat mengakses nilai yang diambil oleh pemicu melalui@pipeline().parameters.parameterName
ekspresi di seluruh alur. Untuk penjelasan mendetail, lihat Referensi Pemicu Metadata dalam AlurDalam contoh sebelumnya, pemicu dikonfigurasikan untuk diaktifkan ketika jalur blob yang berakhiran .csv dibuat di folder pengujian peristiwa dalam kontainer sampel-data. Properti folderPath dan fileName mengambil lokasi blob baru. Misalnya, ketika MoviesDB.csv ditambahkan ke jalur sampel-data/pengujian peristiwa,
@triggerBody().folderPath
memiliki nilaisample-data/event-testing
dan@triggerBody().fileName
memiliki nilaimoviesDB.csv
. Nilai-nilai ini dipetakan, dalam contoh, ke parameter alursourceFolder
dansourceFile
, yang dapat digunakan di seluruh alur masing-masing sebagai@pipeline().parameters.sourceFolder
dan@pipeline().parameters.sourceFile
.Klik Selesai setelah Anda selesai.
Skema JSON
Tabel berikut ini menyediakan gambaran umum tentang elemen skema yang terkait dengan pemicu peristiwa penyimpanan:
Elemen JSON | Keterangan | Jenis | Nilai yang diizinkan | Diperlukan |
---|---|---|---|---|
cakupan | ID sumber daya Azure Resource Manager dari Akun Penyimpanan. | String | ID Azure Resource Manager | Ya |
peristiwa | Jenis peristiwa yang menyebabkan pemicu ini diaktifkan. | Array | Microsoft.Storage.BlobCreated, Microsoft.Storage.BlobDeleted | Ya, kombinasi apa saja dari nilai-nilai ini. |
blobPathBeginsWith | Jalur blob harus dimulai dengan pola yang disediakan agar pemicunya diaktifkan. Misalnya, /records/blobs/december/ hanya mengaktifkan pemicu untuk blob di folder december di bawah kontainerrecords . |
String | Berikan nilai untuk setidaknya salah satu properti ini: blobPathBeginsWith atau blobPathEndsWith . |
|
blobPathEndsWith | Jalur blob harus diakhiri dengan pola yang disediakan agar pemicunya diaktifkan. Misalnya, december/boxes.csv hanya mengaktifkan pemicu untuk blob yang dinamai boxes dalam folder december . |
String | Berikan nilai untuk setidaknya salah satu properti ini: blobPathBeginsWith atau blobPathEndsWith . |
|
ignoreEmptyBlobs | Apakah blob nol byte akan memicu jalannya alur atau tidak. Secara default, ini diatur ke true. | Boolean | BENAR atau SALAH | Tidak |
Contoh pemicu peristiwa penyimpanan
Bagian ini menyediakan contoh pengaturan pemicu peristiwa penyimpanan.
Penting
Anda harus menyertakan /blobs/
segmen jalur, seperti yang ditunjukkan dalam contoh berikut, setiap kali Anda menentukan kontainer dan folder, kontainer dan file, atau kontainer, folder, dan file. Untuk blobPathBeginsWith, antarmuka pengguna akan otomatis menambahkan /blobs/
di antara nama folder dan kontainer di JSON pemicu.
Catatan
Pemicu kedatangan file tidak disarankan sebagai mekanisme pemicu dari sink aliran data. Aliran data melakukan sejumlah tugas penggantian nama file dan pengacakan file partisi di folder target yang secara tidak sengaja dapat memicu peristiwa kedatangan file sebelum pemrosesan data Anda selesai.
Properti | Contoh | Deskripsi |
---|---|---|
Jalur blob dimulai dengan | /containername/ |
Menerima peristiwa untuk setiap blob dalam kontainer. |
Jalur blob dimulai dengan | /containername/blobs/foldername/ |
Menerima kejadian untuk setiap blob dalam kontainer containername dan folder foldername . |
Jalur blob dimulai dengan | /containername/blobs/foldername/subfoldername/ |
Anda juga dapat mereferensikan subfolder. |
Jalur blob dimulai dengan | /containername/blobs/foldername/file.txt |
Menerima peristiwa untuk blob yang dinamai file.txt dalam folder foldername di bawah kontainercontainername . |
Jalur blob diakhiri dengan | file.txt |
Menerima peristiwa untuk blob yang dinamai file.txt dalam jalur apa pun. |
Jalur blob diakhiri dengan | /containername/blobs/file.txt |
Menerima peristiwa untuk blob bernama file.txt di bawah kontainer containername . |
Jalur blob diakhiri dengan | foldername/file.txt |
Menerima peristiwa untuk blob yang dinamai file.txt dalam folder foldername di bawah kontainer apa saja. |
Kontrol Akses Berbasis Peran
Alur Azure Data Factory dan Synapse menggunakan kontrol akses berbasis peran Azure (Azure RBAC) untuk memastikan bahwa akses tidak sah untuk mendengarkan, berlangganan pembaruan dari, dan memicu alur yang terkait dengan peristiwa blob, sangat dilarang.
- Agar berhasil membuat yang baru atau memperbarui Pemicu Peristiwa Penyimpanan yang ada, akun Azure yang masuk ke layanan harus memiliki akses yang sesuai ke akun penyimpanan yang relevan. Jika tidak, operasi akan gagal dengan Akses Ditolak.
- Azure Data Factory dan Azure Synapse tidak memerlukan izin khusus untuk Event Grid Anda, dan Anda tidak perlu menetapkan izin RBAC khusus ke perwakilan layanan Data Factory atau Azure Synapse untuk operasi tersebut.
Salah satu pengaturan RBAC berikut berfungsi untuk pemicu peristiwa penyimpanan:
- Peran pemilik ke akun penyimpanan
- Peran kontributor ke akun penyimpanan
- Izin Microsoft.EventGrid/EventSubscriptions/Write ke akun penyimpanan /subscriptions/####/resourceGroups/####providers/Microsoft.Storage/storageAccounts/storageAccountName
Khususnya,
- Saat menulis di pabrik data (di lingkungan pengembangan untuk instans), akun Azure yang masuk harus memiliki izin di atas
- Saat menerbitkan melalui CI/CD, akun yang digunakan untuk menerbitkan template ARM ke dalam pabrik pengujian atau produksi harus memiliki izin di atas.
Untuk memahami bagaimana layanan memberikan dua janji tersebut, mari kita mundur selangkah dan melihat di belakang layar. Berikut adalah alur kerja tingkat tinggi untuk integrasi antara Azure Data Factory/Azure Synapse, Storage, dan Event Grid.
Membuat Pemicu Peristiwa Penyimpanan baru
Alur kerja tingkat tinggi ini menjelaskan bagaimana Azure Data Factory berinteraksi dengan Event Grid untuk membuat Pemicu Peristiwa Penyimpanan. Untuk Azure Synapse, aliran datanya sama, dengan alur Synapse mengambil peran Data Factory dalam diagram di bawah ini.
Dua panggilan yang terlihat dari alur kerja:
Azure Data Factory dan Azure Synapse tidak melakukan kontak langsung dengan akun Penyimpanan. Permintaan untuk membuat langganan malah diteruskan dan diproses oleh Event Grid. Oleh karena itu, layanan tidak memerlukan izin ke akun Penyimpanan untuk langkah ini.
Kontrol akses dan pemeriksaan izin terjadi di dalam layanan. Sebelum layanan mengirim permintaan untuk berlangganan acara penyimpanan, layanan tersebut memeriksa izin untuk pengguna. Lebih khusus lagi, ia memeriksa apakah akun Azure masuk dan mencoba membuat pemicu Peristiwa Penyimpanan memiliki akses yang sesuai ke akun penyimpanan yang relevan. Jika pemeriksaan izin gagal, pembuatan pemicu juga gagal.
Peristiwa Penyimpanan memicu jalannya alur
Alur kerja tingkat tinggi ini menjelaskan bagaimana peristiwa Penyimpanan memicu jalannya alur melalui Event Grid. Untuk Azure Synapse, aliran datanya sama, dengan alur Synapse mengambil peran Data Factory dalam diagram di bawah ini.
Ada tiga panggilan keluar yang nyata dalam alur kerja yang terkait dengan Peristiwa yang memicu alur dalam layanan:
Event Grid menggunakan model Push yang menyampaikan pesan sesegera mungkin saat penyimpanan memasukkan pesan ke dalam sistem. Ini berbeda dengan sistem perpesanan, seperti Kafka yang menggunakan sistem Pull.
Pemicu Peristiwa berfungsi sebagai pendengar aktif untuk pesan masuk dan memicu alur terkait dengan benar.
Pemicu Peristiwa Penyimpanan sendiri tidak melakukan kontak langsung dengan akun Penyimpanan
- Artinya, jika Anda memiliki Salinan atau aktivitas lain di dalam alur untuk memproses data di akun Penyimpanan, layanan akan melakukan kontak langsung dengan Penyimpanan, menggunakan info masuk yang disimpan di Layanan Tertaut. Pastikan Layanan Tertaut disiapkan dengan tepat
- Namun, jika Anda tidak membuat referensi ke akun Penyimpanan dalam alur, Anda tidak perlu memberikan izin ke layanan untuk mengakses akun Penyimpanan
Konten terkait
- Untuk detail informasi tentang pemicu, lihat Eksekusi dan pemicu alur.
- Pelajari cara mereferensikan metadata pemicu dalam alur, lihat Mereferensikan Metadata Pemicu dalam Eksekusi Alur