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.

  1. Beralih ke tab Edit di Data Factory, atau tab Integrasikan di Azure Synapse.

  2. Pilih Pemicu pada menu, lalu pilih Baru/Edit.

  3. Pada halaman Tambahkan Pemicu, pilih Pilih pemicu..., lalu pilih +Baru.

  4. Pilih Jenis Pemicu Peristiwa Penyimpanan

  5. 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.

  6. 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/ dan 2018/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 dinamai shoes.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.
  7. 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.

    Screenshot of storage event trigger creation page.

  8. Pilih apakah pemicu Anda mengabaikan blob dengan nol byte atau tidak.

  9. 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.

    Screenshot of storage event trigger preview page.

  10. 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.

  11. 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 Alur

    Screenshot of storage event trigger mapping properties to pipeline parameters.

    Dalam 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 nilai sample-data/event-testing dan @triggerBody().fileName memiliki nilai moviesDB.csv. Nilai-nilai ini dipetakan, dalam contoh, ke parameter alur sourceFolder dan sourceFile, yang dapat digunakan di seluruh alur masing-masing sebagai @pipeline().parameters.sourceFolder dan @pipeline().parameters.sourceFile.

  12. 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.

Workflow of storage event trigger creation.

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.

Workflow of storage event triggering pipeline runs.

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