Bagikan melalui


Menanggapi kejadian penyimpanan Blob

Kejadian Azure Storage memungkinkan aplikasi menanggapi kejadian, seperti pembuatan dan penghapusan blob. Itu dilakukan tanpa perlu kode yang rumit atau layanan polling yang mahal dan tidak efisien. Bagian terbaiknya adalah Anda hanya membayar yang Anda gunakan.

Kejadian penyimpanan blob didorong menggunakan Azure Event Grid kepada pelanggan seperti Azure Functions, Azure Logic Apps, atau bahkan ke pendengar http Anda sendiri. Event Grid menyediakan pengiriman kejadian yang andal ke aplikasi Anda melalui kebijakan coba lagi yang kaya dan dead-lettering.

Lihat artikel skema kejadian penyimpanan Blob untuk melihat daftar lengkap kejadian yang didukung penyimpanan Blob.

Skenario kejadian penyimpanan Blob yang umum mencakup pemrosesan gambar atau video, indeks pencarian, atau alur kerja apa pun yang berorientasi file. Unggahan file asinkron sangat cocok untuk kejadian. Ketika perubahan jarang terjadi, tetapi skenario Anda memerlukan respons langsung, arsitektur berbasis kejadian bisa sangat efisien.

Jika Anda ingin mencoba kejadian penyimpanan blob, lihat salah satu artikel mulai cepat ini:

Jika Anda ingin menggunakan alat ini: Lihat artikel ini:
Portal Azure Mulai Cepat: Merutekan kejadian penyimpanan Blob ke titik akhir web dengan portal Azure
PowerShell Mulai Cepat: Merutekan kejadian penyimpanan ke titik akhir web dengan PowerShell
Azure CLI Mulai Cepat: Merutekan kejadian penyimpanan ke titik akhir web dengan Azure CLI

Untuk melihat contoh tanggapan kejadian penyimpanan Blob dengan menggunakan fungsi Azure, lihat artikel berikut ini:

Catatan

Storage (tujuan umum v1) tidak mendukung integrasi dengan Event Grid.

Model kejadian

Azure Event Grid menggunakan langganan acara untuk merutekan pesan acara kepada pelanggan. Gambar ini menjelaskan hubungan antara penerbit kejadian, langganan kejadian, dan penangan kejadian.

Model Event Grid

Pertama, berlangganan ke titik akhir kejadian. Lalu, ketika suatu kejadian dipicu, layanan Event Grid akan mengirim data tentang kejadian itu ke titik akhir.

Lihat artikel skema kejadian penyimpanan Blob untuk rincian:

  • Daftar lengkap kejadian penyimpanan Blob dan cara setiap kejadian dipicu.

  • Contoh data yang akan dikirim Event Grid untuk setiap kejadian ini.

  • Tujuan dari setiap pasangan nilai kunci yang muncul dalam data.

Memfilter acara

Kejadian blob dapat difilter berdasarkan jenis kejadian, nama kontainer, atau nama objek yang dibuat/dihapus. Filter di Event Grid cocok dengan awal atau akhir subjek sehingga acara dengan subjek yang cocok masuk ke pelanggan.

Untuk mempelajari selengkapnya tentang cara menerapkan filter, lihat Memfilter kejadian untuk Event Grid.

Subjek kejadian penyimpanan Blob menggunakan format:

/blobServices/default/containers/<containername>/blobs/<blobname>

Untuk mencocokkan semua kejadian akun penyimpanan, Anda dapat membiarkan filter subjek kosong.

Untuk mencocokkan kejadian dari blob yang dibuat dalam sekumpulan kontainer berimbuhan sama, gunakan filter subjectBeginsWith seperti:

/blobServices/default/containers/containerprefix

Untuk mencocokkan kejadian dari blob yang dibuat dalam kontainer tertentu, gunakan filter subjectBeginsWith seperti:

/blobServices/default/containers/containername/

Untuk mencocokkan kejadian dari blob yang dibuat dalam kontainer berimbuhan nama blob sama, gunakan filter subjectBeginsWith seperti:

/blobServices/default/containers/containername/blobs/blobprefix

Untuk mencocokkan kejadian dari blob yang dibuat dalam kontainer berimbuhan blob sama, gunakan filter subjectEndsWith seperti ".log" atau ".jpg". Untuk informasi selengkapnya, lihat Konsep Event Grid.

Praktik untuk memakai acara

Aplikasi yang menangani kejadian penyimpanan Blob harus mengikuti beberapa praktik yang disarankan:

  • Karena beberapa langganan dapat dikonfigurasi untuk merutekan kejadian ke penangan kejadian yang sama, penting untuk tidak menganggap kejadiannya berasal dari sumber tertentu, tetapi periksalah topik pesan untuk memastikan bahwa itu berasal dari akun penyimpanan yang Anda harapkan.

  • Demikian pula, pastikan eventType adalah kejadian yang Anda siapkan untuk diproses, dan jangan berasumsi bahwa semua acara yang diterima akan berupa jenis yang diharapkan.

  • Meskipun sebagian besar pesan tiba mendekati real-time, tidak ada perjanjian tingkat layanan sekitar waktu yang diperlukan agar pesan tiba. Dalam beberapa kasus, mungkin perlu beberapa menit agar pesan tiba. Karena pesan dapat tiba setelah beberapa penundaan, gunakan bidang etag untuk memahami apakah informasi Anda tentang objek itu masih yang terbaru. Untuk mempelajari cara menggunakan bidang etag, lihat Mengelola konkurensi di Blob Storage.

  • Karena pesan dapat rusak, gunakan bidang pengurut untuk memahami urutan kejadian pada objek tertentu. Bidang pengurut adalah nilai string yang mewakili urutan logika kejadian untuk nama blob tertentu. Anda dapat menggunakan perbandingan string standar untuk memahami urutan relatif dari dua kejadian pada nama blob yang sama.

  • Kejadian penyimpanan menjamin pengiriman setidaknya sekali kepada pelanggan, yang memastikan bahwa semua pesan di-output. Namun karena percobaan ulang antara node backend dan layanan atau ketersediaan langganan, pesan duplikat dapat terjadi. Untuk mempelajari selengkapnya tentang pengiriman pesan dan coba lagi, lihat Pengiriman pesan dan coba lagi Event Grid.

  • Gunakan bidang blobType untuk memahami jenis operasi apa yang diizinkan pada blob, dan jenis pustaka klien mana yang harus Anda gunakan untuk mengakses blob. Nilai yang valid adalah BlockBlob atau PageBlob.

  • Gunakan bidang url dengan konstruktor CloudBlockBlob dan CloudAppendBlob untuk mengakses blob.

  • Abaikan bidang yang tidak Anda pahami. Praktik ini akan membantu Anda tetap tangguh terhadap fitur baru yang mungkin ditambahkan di masa mendatang.

  • Jika Anda ingin memastikan bahwa kejadian Microsoft.Storage.BlobCreated hanya dipicu ketika Block Blob benar-benar diterapkan, filter peristiwa untuk panggilan REST API CopyBlob, PutBlob, PutBlockList atau FlushWithClose. Panggilan API ini memicu peristiwa Microsoft.Storage.BlobCreated hanya setelah data diterapkan penuh pada Block Blob. Untuk mempelajari cara membuat filter, lihat Memfilter kejadian untuk Event Grid.

Dukungan fitur

Dukungan untuk fitur ini mungkin terpengaruh dengan mengaktifkan Data Lake Storage Gen2, protokol Network File System (NFS) 3.0, atau SSH File Transfer Protocol (SFTP). Jika Anda telah mengaktifkan salah satu kemampuan ini, lihat Dukungan fitur Blob Storage di akun Azure Storage untuk menilai dukungan untuk fitur ini.

Langkah berikutnya

Pelajari selengkapnya tentang Event Grid dan cobalah kejadian penyimpanan Blob: