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 bawaanEventGrid 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, sementaraDoNotDelete
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.
Beralih ke tab Edit di Data Factory atau tab Integrasikan di Azure Synapse Analytics.
Pada menu, pilih Pemicu, lalu pilih Baru/Edit.
Pada halaman Tambahkan Pemicu , pilih Pilih pemicu, lalu pilih + Baru.
Pilih jenis pemicu Peristiwa penyimpanan.
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.
Properti
Blob path begins with
danBlob 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 danBlob 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 meliputi2018/
dan2018/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 meliputishoes.csv
dan.csv
. Nama kontainer dan folder, jika ditentukan, harus dipisahkan oleh/blobs/
segmen. Misalnya, kontainer bernamaorders
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 dinamaishoes.csv
dalam folder yang disebutapril
dalam kontainer apa pun.
Perhatikan bahwa
Blob path begins with
danBlob path ends with
merupakan satu-satunya pencocokan pola yang diizinkan dalam pemicu peristiwa penyimpanan. Jenis pencocokan kartubebas lainnya tidak didukung untuk jenis pemicu.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.
Pilih apakah pemicu Anda mengabaikan blob dengan nol byte atau tidak.
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.
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.
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.Dalam contoh sebelumnya, pemicu dikonfigurasikan untuk diaktifkan ketika jalur blob yang berakhiran .csv dibuat di folder pengujian peristiwa dalam kontainer sampel-data. Properti
folderPath
danfileName
menangkap lokasi blob baru. Misalnya, ketika MoviesDB.csv ditambahkan ke jalur sample-data/event-testing,@triggerBody().folderPath
memiliki nilaisample-data/event-testing
dan@triggerBody().fileName
memiliki nilaimoviesDB.csv
. Nilai-nilai ini dipetakan, dalam contoh, ke parametersourceFolder
alur dansourceFile
, yang dapat digunakan di seluruh alur sebagai@pipeline().parameters.sourceFolder
dan@pipeline().parameters.sourceFile
, masing-masing.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.
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.
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.
Konten terkait
- Untuk informasi selengkapnya tentang pemicu, lihat Eksekusi dan pemicu alur.
- Untuk mereferensikan metadata pemicu dalam alur, lihat Referensi memicu metadata dalam eksekusi alur.