Bagikan melalui


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 Azure Data Factory atau Azure Synapse Analytics.

Arsitektur berbasis peristiwa adalah pola integrasi data umum yang melibatkan produksi, deteksi, konsumsi, dan reaksi terhadap peristiwa. Skenario integrasi data sering mengharuskan pelanggan untuk memicu alur yang dipicu dari peristiwa di akun Azure Storage, seperti kedatangan atau penghapusan file di akun Azure Blob Storage. Alur Data Factory dan Azure Synapse Analytics terintegrasi secara asli dengan Azure Event Grid, yang memungkinkan Anda memicu alur pada peristiwa tersebut.

Pertimbangan pemicu peristiwa penyimpanan

Pertimbangkan poin-poin berikut saat Anda menggunakan pemicu peristiwa penyimpanan:

  • 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 adalah bagian dari peran bawaan EventGrid EventSubscription Contributor .
  • Jika Anda menggunakan fitur ini di Azure Synapse Analytics, pastikan Anda juga mendaftarkan langganan Anda dengan penyedia sumber daya Data Factory. Jika tidak, Anda akan mendapatkan pesan yang menyatakan bahwa "pembuatan Langganan Peristiwa gagal."
  • Jika akun Blob Storage berada di belakang titik akhir privat dan memblokir akses jaringan publik, Anda perlu mengonfigurasi aturan jaringan untuk mengizinkan komunikasi dari Blob Storage ke Event Grid. Anda dapat memberikan akses penyimpanan ke layanan Azure tepercaya, seperti Event Grid, dokumentasi Penyimpanan berikut, atau mengonfigurasi titik akhir privat untuk Event Grid yang memetakan ke ruang alamat jaringan virtual, mengikuti dokumentasi Event Grid.
  • Pemicu peristiwa penyimpanan saat ini hanya mendukung akun penyimpanan Azure Data Lake Storage Gen2 dan General-purpose versi 2. Jika Anda bekerja dengan peristiwa penyimpanan Secure File Transfer Protocol (SFTP), Anda perlu menentukan SFTP Data API di bawah bagian pemfilteran juga. Karena keterbatasan Event Grid, Data Factory hanya mendukung maksimal 500 pemicu peristiwa penyimpanan per akun penyimpanan.
  • Untuk membuat pemicu peristiwa penyimpanan baru atau memodifikasi yang sudah ada, akun Azure yang Anda gunakan untuk masuk ke layanan dan menerbitkan pemicu peristiwa penyimpanan harus memiliki izin kontrol akses berbasis peran (Azure RBAC) yang sesuai di akun penyimpanan. Tidak diperlukan izin lain. Perwakilan layanan untuk Azure Data Factory dan Azure Synapse Analytics tidak memerlukan izin khusus untuk akun penyimpanan atau Event Grid. Untuk informasi selengkapnya tentang kontrol akses, lihat bagian Kontrol akses berbasis peran.
  • Jika Anda menerapkan kunci Azure Resource Manager ke akun penyimpanan Anda, itu mungkin memengaruhi kemampuan pemicu blob untuk membuat atau menghapus blob. ReadOnly Kunci mencegah pembuatan dan penghapusan, sementara DoNotDelete kunci mencegah penghapusan. Pastikan Anda memperhitungkan pembatasan ini untuk menghindari masalah dengan pemicu Anda.
  • Kami tidak merekomendasikan pemicu kedatangan file 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 lengkap data Anda.

Membuat pemicu dengan UI

Bagian ini memperlihatkan kepada Anda cara membuat pemicu peristiwa penyimpanan dalam antarmuka pengguna (UI) alur Azure Data Factory dan Azure Synapse Analytics.

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

  2. Pada menu, pilih Pemicu, 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 daftar dropdown langganan Azure atau secara manual dengan menggunakan ID sumber daya akun penyimpanannya. Pilih kontainer tempat Anda ingin peristiwa terjadi. Pemilihan kontainer diperlukan, tetapi memilih semua kontainer dapat menyebabkan sejumlah besar peristiwa.

  6. Properti Blob path begins with dan Blob path begins with memungkinkan Anda menentukan nama kontainer, folder, dan blob yang ingin Anda terima peristiwanya. Pemicu peristiwa penyimpanan Anda memerlukan setidaknya salah satu properti ini untuk didefinisikan. Anda dapat menggunakan berbagai pola untuk properti dan Blob path begins with , Blob path begins with seperti yang ditunjukkan dalam contoh nanti di artikel ini.

    • Blob path begins with: 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.
    • Blob path begins with: Jalur blob harus diakhir dengan nama file atau ekstensi. Nilai yang valid meliputi shoes.csv dan .csv. Nama kontainer dan folder, jika ditentukan, harus dipisahkan oleh /blobs/ segmen. Misalnya, kontainer bernama orders dapat memiliki nilai /orders/blobs/2018/april/shoes.csv. Untuk menentukan folder dalam kontainer apa pun, hilangkan karakter utama / . Misalnya, april/shoes.csv memicu peristiwa pada file apa pun yang dinamai shoes.csv dalam folder yang disebut april dalam kontainer apa pun.

    Perhatikan bahwa Blob path begins with dan Blob path ends with merupakan satu-satunya pencocokan pola yang diizinkan dalam pemicu peristiwa penyimpanan. Jenis pencocokan kartubebas lainnya tidak didukung untuk jenis pemicu.

  7. Pilih apakah pemicu Anda merespons peristiwa yang dibuat Blob, peristiwa blob yang dihapus , atau keduanya. Di lokasi penyimpanan yang Anda tentukan, setiap peristiwa memicu alur Data Factory dan Azure Synapse Analytics yang terkait dengan pemicu.

    Cuplikan layar yang memperlihatkan halaman pembuatan pemicu peristiwa penyimpanan.

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

  9. Setelah Mengonfigurasi pemicu, pilih Berikutnya: Pratinjau data. Layar ini menampilkan blob yang ada yang cocok dengan konfigurasi pemicu peristiwa penyimpanan Anda. Pastikan Anda memiliki filter tertentu. Mengonfigurasi filter yang terlalu luas dapat mencocokkan sejumlah besar file yang dibuat atau dihapus dan mungkin secara signifikan memengaruhi biaya Anda. Setelah kondisi filter Anda diverifikasi, pilih Selesai.

    Cuplikan layar yang memperlihatkan halaman pratinjau pemicu peristiwa penyimpanan.

  10. Untuk melampirkan alur ke pemicu ini, buka kanvas alur dan pilih Picu>Baru/Edit. Saat panel samping muncul, pilih daftar dropdown Pilih pemicu dan pilih pemicu yang Anda buat. Pilih Berikutnya: Pratinjau data untuk mengonfirmasi bahwa konfigurasi sudah benar. Lalu pilih Berikutnya untuk memvalidasi bahwa pratinjau data sudah benar.

  11. Jika alur Anda memiliki parameter, Anda dapat menentukannya di panel sisi Parameter Eksekusi Pemicu. 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 terperinci, lihat Referensi metadata pemicu dalam alur.

    Cuplikan layar yang memperlihatkan properti pemetaan pemicu peristiwa penyimpanan ke parameter alur.

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

  12. Setelah selesai, pilih Selesai.

Skema JSON

Tabel berikut ini menyediakan gambaran umum elemen skema yang terkait dengan pemicu peristiwa penyimpanan.

Elemen JSON Deskripsi Jenis Nilai yang diizinkan Wajib
cakupan ID sumber daya Azure Resource Manager dari akun penyimpanan. String ID Azure Resource Manager Ya.
events 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 memicu eksekusi alur atau tidak. Secara default, nilai 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, UI secara otomatis menambahkan /blobs/ antara folder dan nama kontainer di JSON pemicu.

Properti Contoh Deskripsi
Blob path begins with /containername/ Menerima peristiwa untuk setiap blob dalam kontainer.
Blob path begins with /containername/blobs/foldername/ Menerima kejadian untuk setiap blob dalam kontainer containername dan folder foldername.
Blob path begins with /containername/blobs/foldername/subfoldername/ Anda juga dapat mereferensikan subfolder.
Blob path begins with /containername/blobs/foldername/file.txt Menerima peristiwa untuk blob yang dinamai file.txt dalam folder foldername di bawah kontainercontainername.
Blob path ends with file.txt Menerima peristiwa untuk blob yang dinamai file.txt dalam jalur apa pun.
Blob path ends with /containername/blobs/file.txt Menerima peristiwa untuk blob bernama file.txt di bawah kontainer containername.
Blob path ends with foldername/file.txt Menerima peristiwa untuk blob bernama file.txt dalam folder di foldername bawah kontainer apa pun.

Kontrol Akses Berbasis Peran

Alur Data Factory dan Azure Synapse Analytics menggunakan kontrol akses berbasis peran Azure (Azure RBAC) untuk memastikan bahwa akses tidak sah untuk mendengarkan, berlangganan pembaruan dari, dan memicu alur yang ditautkan ke peristiwa blob sangat dilarang.

  • Agar berhasil membuat pemicu peristiwa penyimpanan baru atau memperbarui yang sudah ada, akun Azure yang masuk ke layanan harus memiliki akses yang sesuai ke akun penyimpanan yang relevan. Jika tidak, operasi gagal dengan pesan "Akses Ditolak."
  • Data Factory dan Azure Synapse Analytics tidak memerlukan izin khusus ke instans Event Grid Anda, dan Anda tidak perlu menetapkan izin RBAC khusus ke perwakilan layanan Data Factory atau Azure Synapse Analytics untuk operasi tersebut.

Salah satu pengaturan RBAC berikut berfungsi untuk pemicu peristiwa penyimpanan:

  • Peran pemilik ke akun penyimpanan
  • Peran kontributor ke akun penyimpanan
  • Microsoft.EventGrid/EventSubscriptions/Write izin ke akun penyimpanan /subscriptions/####/resourceGroups/####/providers/Microsoft.Storage/storageAccounts/storageAccountName

Khususnya:

  • Saat Anda menulis di pabrik data (di lingkungan pengembangan misalnya), akun Azure yang masuk harus memiliki izin sebelumnya.
  • Saat Anda menerbitkan melalui integrasi berkelanjutan dan pengiriman berkelanjutan, akun yang digunakan untuk menerbitkan templat Azure Resource Manager ke dalam pabrik pengujian atau produksi harus memiliki izin sebelumnya.

Untuk memahami bagaimana layanan memberikan dua janji, mari kita mengambil langkah mundur dan mengintip di belakang layar. Berikut adalah alur kerja tingkat tinggi untuk integrasi antara Data Factory/Azure Synapse Analytics, Storage, dan Event Grid.

Membuat pemicu peristiwa penyimpanan baru

Alur kerja tingkat tinggi ini menjelaskan bagaimana Data Factory berinteraksi dengan Event Grid untuk membuat pemicu peristiwa penyimpanan. Aliran data sama di Azure Synapse Analytics, dengan alur Azure Synapse Analytics mengambil peran pabrik data dalam diagram berikut.

Diagram yang memperlihatkan alur kerja pembuatan pemicu peristiwa penyimpanan.

Dua callout yang terlihat dari alur kerja:

  • Data Factory dan Azure Synapse Analytics tidak melakukan kontak langsung dengan akun penyimpanan. Permintaan untuk membuat langganan disampaikan dan diproses oleh Event Grid. Layanan ini tidak memerlukan izin untuk mengakses akun penyimpanan untuk langkah ini.
  • Kontrol akses dan pemeriksaan izin terjadi di dalam layanan. Sebelum layanan mengirim permintaan untuk berlangganan peristiwa penyimpanan, layanan memeriksa izin untuk pengguna. Lebih khusus lagi, ini memeriksa apakah akun Azure yang 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 alur pemicu peristiwa penyimpanan berjalan melalui Event Grid. Untuk Azure Synapse Analytics, aliran datanya sama, dengan alur Azure Synapse Analytics mengambil peran Data Factory dalam diagram berikut.

Diagram yang memperlihatkan alur kerja peristiwa penyimpanan yang memicu eksekusi alur.

Tiga callout yang terlihat dalam alur kerja terkait dengan alur pemicu peristiwa dalam layanan:

  • Event Grid menggunakan model Push yang menyampaikan pesan sesegera mungkin saat penyimpanan memasukkan pesan ke dalam sistem. Pendekatan ini berbeda dari sistem olahpesan, seperti Kafka, tempat sistem Pull digunakan.

  • Pemicu peristiwa berfungsi sebagai pendengar aktif untuk pesan masuk dan memicu alur terkait dengan benar.

  • Pemicu peristiwa penyimpanan itu sendiri tidak melakukan kontak langsung dengan akun penyimpanan.

    • Jika Anda memiliki aktivitas Salin atau aktivitas lain di dalam alur untuk memproses data di akun penyimpanan, layanan melakukan kontak langsung dengan akun penyimpanan dengan menggunakan kredensial yang disimpan dalam layanan tertaut. Pastikan bahwa layanan tertaut disiapkan dengan tepat.
    • Jika Anda tidak membuat referensi ke akun penyimpanan di alur, Anda tidak perlu memberikan izin ke layanan untuk mengakses akun penyimpanan.