Setelah mengintegrasikan Object Storage Service (OSS) dengan Function Compute, peristiwa OSS dapat memicu eksekusi fungsi untuk memproses data di Bucket OSS. Topik ini menjelaskan batasan, jenis peristiwa, serta aturan pemicuan dari pemicu OSS asli dan pemicu OSS berbasis EventBridge di Function Compute.
Informasi latar belakang
OSS dapat diintegrasikan secara mulus dengan Function Compute menggunakan pemicu OSS. Anda dapat menulis fungsi dan memanggilnya melalui peristiwa OSS. Saat OSS mendeteksi peristiwa tipe tertentu, fungsi terkait akan dieksekusi. Sebagai contoh, Anda dapat menulis fungsi untuk memproses peristiwa PutObject. Ketika operasi PutObject dipanggil untuk mengunggah gambar ke OSS, fungsi tersebut otomatis dipanggil untuk memproses gambar.
Setelah OSS diintegrasikan dengan Function Compute, Anda dapat memanggil berbagai fungsi untuk memproses gambar dan file audio, serta menulis file yang telah diproses ke layanan penyimpanan tertentu. Selama proses ini, Anda hanya perlu fokus pada penulisan logika fungsi. Function Compute mampu memproses sejumlah besar data secara real-time dan paralel.
Batasan pada pemicu OSS
Hanya pemicu OSS asli yang mendukung kueri semua pemicu terkait suatu bucket.
Anda dapat menggunakan kembali pemicu OSS yang ada atau menghapus pemicu OSS yang tidak lagi digunakan sesuai kebutuhan bisnis Anda. Hal ini mencegah jumlah pemicu yang terkait dengan bucket melebihi 10. Di tab Trigger Management (URL) halaman detail fungsi, temukan pemicu yang ingin dikelola dan klik nama bucket di kolom Configurations. Di panel OSS Bucket-related Triggers, Anda dapat melihat pemicu OSS yang terkait dengan bucket.
CatatanPemicu yang dihapus tidak dapat dipulihkan. Berhati-hatilah saat menghapus pemicu.
Anda dapat mengonfigurasi beberapa awalan objek dan akhiran hanya untuk pemicu OSS berbasis EventBridge. Untuk informasi lebih lanjut, lihat Konfigurasikan Pemicu OSS Berbasis EventBridge.
Pencocokan ekspresi reguler tidak didukung untuk awalan objek dan akhiran yang dikonfigurasi untuk pemicu OSS asli maupun pemicu OSS berbasis EventBridge. Untuk informasi lebih lanjut, lihat Konfigurasikan Pemicu OSS Asli dan Konfigurasikan Pemicu OSS Berbasis EventBridge.
Jika Anda ingin mengaitkan lebih dari 10 pemicu OSS dengan sebuah bucket, Anda hanya dapat menggunakan pemicu OSS berbasis EventBridge. Untuk informasi lebih lanjut, lihat Konfigurasikan Pemicu OSS Berbasis EventBridge.
Kami merekomendasikan agar Anda tidak mengaitkan lebih dari 10 pemicu dengan sebuah bucket. Jika Anda ingin mengaitkan lebih banyak pemicu, buatlah bucket baru dan konfigurasikan pemicu baru berdasarkan bucket tersebut.
Peristiwa OSS
Saat OSS mendeteksi peristiwa tipe tertentu, OSS mengkodekan informasi peristiwa sebagai string JSON dan meneruskannya ke fungsi yang memproses peristiwa. Untuk informasi lebih lanjut tentang format notifikasi peristiwa OSS, lihat Notifikasi Peristiwa.
Tabel berikut menjelaskan peristiwa OSS yang didukung oleh Function Compute. Setiap tipe peristiwa sesuai dengan operasi ObjectCreated, ObjectRemoved, atau ObjectModified. Setelah operasi dipanggil sesuai harapan, fungsi dipicu dan dieksekusi sekali.
Tipe Peristiwa | Nama Peristiwa | Deskripsi |
ObjectCreated | oss:ObjectCreated:PutObject | Operasi PutObject dipanggil untuk mengunggah objek. Untuk informasi lebih lanjut, lihat PutObject. |
oss:ObjectCreated:PutSymlink | Operasi PutSymlink dipanggil untuk membuat tautan simbolis untuk objek tujuan di OSS. Tautan simbolis dapat digunakan untuk mengakses objek tujuan. Untuk informasi lebih lanjut, lihat PutSymlink. | |
oss:ObjectCreated:PostObject | Operasi PostObject dipanggil untuk mengunggah file ke bucket tertentu menggunakan formulir HTML. Untuk informasi lebih lanjut, lihat PostObject. | |
oss:ObjectCreated:CopyObject | Operasi CopyObject dipanggil untuk menyalin objek yang sudah ada di OSS. Untuk informasi lebih lanjut, lihat CopyObject. | |
oss:ObjectCreated:InitiateMultipartUpload | Operasi InitiateMultipartUpload dipanggil untuk memulai tugas unggah multipart di OSS. Sebelum Anda menggunakan unggah multipart untuk mengunggah data, Anda harus memanggil operasi InitiateMultipartUpload. Untuk informasi lebih lanjut, lihat InitiateMultipartUpload. | |
oss:ObjectCreated:UploadPart | Setelah peristiwa unggah multipart dimulai, Anda dapat mengunggah data dalam bagian berdasarkan nama objek dan ID unggah yang ditentukan. Untuk informasi lebih lanjut, lihat UploadPart. | |
oss:ObjectCreated:UploadPartCopy | Operasi UploadPartCopy dipanggil untuk menyalin data dari objek yang sudah ada untuk mengunggah bagian. Untuk informasi lebih lanjut, lihat UploadPartCopy. | |
oss:ObjectCreated:CompleteMultipartUpload | Operasi CompleteMultipartUpload dipanggil untuk menyelesaikan tugas unggah multipart objek. Untuk informasi lebih lanjut, lihat CompleteMultipartUpload. | |
oss:ObjectCreated:AppendObject | Operasi AppendObject dipanggil untuk mengunggah objek dengan menambahkan objek ke objek yang sudah ada. Untuk informasi lebih lanjut, lihat AppendObject. | |
oss:ObjectCreated:* | Fungsi dipicu ketika salah satu operasi ObjectCreated yang disebutkan sebelumnya dipanggil. | |
ObjectRemoved | oss:ObjectRemoved:DeleteObject | Operasi DeleteObject dipanggil untuk menghapus objek. Untuk informasi lebih lanjut, lihat DeleteObject. |
oss:ObjectRemoved:DeleteObjects | Operasi DeleteMultipleObjects dipanggil untuk menghapus beberapa objek sekaligus. Untuk informasi lebih lanjut, lihat DeleteMultipleObjects. | |
oss:ObjectRemoved:AbortMultipartUpload | Operasi AbortMultipartUpload dipanggil untuk membatalkan tugas unggah multipart berdasarkan ID unggah yang ditentukan. Untuk informasi lebih lanjut, lihat AbortMultipartUpload. | |
ObjectModified | oss:ObjectModified:UpdateObjectMeta | Operasi UpdateObjectMeta dipanggil untuk memodifikasi atribut objek. Catatan Jenis peristiwa ini didukung di wilayah berikut: Cina (Hangzhou), Cina (Shanghai), Cina (Qingdao), Cina (Beijing), Cina (Zhangjiakou), Cina (Hohhot), Cina (Shenzhen), dan Cina (Chengdu). |
ObjectReplication | oss:ObjectReplication:ObjectCreated | Objek dibuat dalam tugas replikasi data. Catatan Peristiwa ini didukung di wilayah berikut: Cina (Hangzhou), Cina (Shanghai), Cina (Beijing), dan Cina (Shenzhen). |
oss:ObjectReplication:ObjectModified | Objek ditimpa dalam tugas replikasi data. Catatan Peristiwa ini didukung di wilayah berikut: Cina (Hangzhou), Cina (Shanghai), Cina (Beijing), dan Cina (Shenzhen). | |
oss:ObjectReplication:ObjectRemoved | Objek dihapus dalam tugas replikasi data. Catatan Peristiwa ini didukung di wilayah berikut: Cina (Hangzhou), Cina (Shanghai), Cina (Beijing), dan Cina (Shenzhen). |
Aturan Pemicuan
Jangan lakukan pemicuan loop
Saat menggunakan pemicu peristiwa OSS, hindari pemicuan loop. Sebagai contoh, ketika Anda mengunggah objek ke bucket OSS, operasi unggah memicu fungsi. Fungsi tersebut menghasilkan satu atau lebih objek yang ditulis ke bucket OSS, dan operasi penulisan memicu fungsi lagi, sehingga menciptakan loop.
Untuk mencegah biaya tambahan akibat pemicuan loop, kami sarankan Anda mengonfigurasi Awalan Objek atau Akhiran Objek saat membuat pemicu OSS. Sebagai contoh, Anda dapat mengatur Awalan Objek menjadi src dan Awalan Objek menjadi dst. Dengan cara ini, objek yang dihasilkan tidak akan memanggil fungsi lagi. Jika Anda tidak mengonfigurasi Awalan Objek atau Akhiran Objek, objek dengan semua awalan dan akhiran akan cocok. Untuk informasi lebih lanjut, lihat Konfigurasikan Pemicu OSS.
Pastikan keunikan semantik
Semantik konfigurasi pemicu harus unik di seluruh bucket tempat pemicu dibuat. Konfigurasi mencakup parameter Trigger Event, parameter Object Prefix, dan parameter Object Suffix. Sebagai contoh, Anda membuat pemicu dengan peristiwa pemicu oss:ObjectCreated:PutObject untuk sebuah bucket. Parameter Object Prefix dan Object Suffix dari pemicu diatur ke source dan zip. Tabel berikut menjelaskan apakah pemicu baru untuk bucket valid.
Trigger Event | Object Prefix | Object Suffix | Valid | Deskripsi |
oss:ObjectCreated:* | source1 | zip1 | Tidak | Pemicu baru dikonfigurasi dengan tipe peristiwa yang sama dengan pemicu yang ada. Catatan oss:ObjectCreated:* mencakup semua peristiwa ObjectCreated. Jika Anda telah membuat pemicu tipe peristiwa ObjectCreated di bucket, Anda tidak dapat membuat pemicu tipe peristiwa oss:ObjectCreated:*. Demikian juga, jika Anda telah membuat pemicu tipe peristiwa oss:ObjectCreated:* di bucket, Anda tidak dapat membuat pemicu tipe peristiwa ObjectCreated. |
oss:ObjectCreated:PutObject | source | zip | Tidak | Pemicu baru dikonfigurasi dengan nilai yang sama untuk parameter Object Prefix dan Object Suffix seperti pemicu yang ada. |
source | Tidak Ada | Tidak | Pemicu baru dikonfigurasi dengan nilai yang sama untuk parameter Object Prefix seperti pemicu yang ada. Jika Anda tidak menentukan parameter Object Suffix, objek dengan akhiran zip termasuk. | |
Tidak Ada | zip | Tidak | Pemicu baru dikonfigurasi dengan nilai yang sama untuk parameter Object Suffix seperti pemicu yang ada. Jika Anda tidak menentukan parameter Object Prefix, objek dengan awalan source termasuk. | |
source1 | zip1 | Ya | Pemicu baru dikonfigurasi dengan nilai yang berbeda untuk parameter Object Prefix dan Object Suffix dari pemicu yang ada. | |
source | zip1 | Ya | Pemicu baru dikonfigurasi dengan nilai yang berbeda untuk parameter Object Suffix dari pemicu yang ada. | |
source1 | zip | Ya | Pemicu baru dikonfigurasi dengan nilai yang berbeda untuk parameter Object Prefix dari pemicu yang ada. | |
oss:ObjectCreated:PostObject | source | zip | Ya | Pemicu baru dikonfigurasi dengan nilai yang berbeda untuk parameter Trigger Event dari pemicu yang ada. |
Keunikan semantik harus dipastikan untuk pemicu OSS asli. Oleh karena itu, Anda tidak dapat mengonfigurasi pemicu OSS yang sama untuk fungsi yang berbeda.
Jika Anda ingin mengonfigurasi pemicu OSS yang sama untuk fungsi yang berbeda dengan tipe peristiwa yang sama, Anda dapat menggunakan pemicu OSS berbasis EventBridge. Untuk informasi lebih lanjut, lihat Konfigurasikan Pemicu OSS Berbasis EventBridge.
FAQ
Referensi
Konfigurasikan Pemicu
Untuk informasi lebih lanjut tentang cara mengonfigurasi dan menggunakan pemicu OSS asli dan pemicu OSS berbasis EventBridge, lihat Konfigurasikan Pemicu OSS Asli dan Konfigurasikan Pemicu OSS Berbasis EventBridge.
Pemicu
Jika Anda ingin memeriksa peristiwa mana yang memicu sebuah fungsi, Anda dapat mengonfigurasi sistem untuk mencetak log tipe peristiwa dalam kode Anda. Untuk informasi lebih lanjut, lihat Manajemen Log.
Jika Anda ingin menggunakan sebuah fungsi untuk memanggil fungsi lain, Anda dapat menentukan operasi API untuk memanggil fungsi tersebut. Untuk informasi lebih lanjut, lihat Bisakah Fungsi Saling Memanggil?.
Jika Anda ingin mengatur fungsi Anda, Anda dapat menggunakan alur kerja fungsi atau mengonfigurasi layanan tujuan untuk pemanggilan asinkron. Untuk informasi lebih lanjut, lihat Sistem Alur Kerja Pemrosesan Video dan Konfigurasikan Tujuan untuk Pemanggilan Asinkron.
Tutorial Terkait Pemicu
Untuk informasi lebih lanjut tentang cara mendekompres file ZIP yang diunggah ke OSS, lihat Gunakan Function Compute untuk Mendekompres File Secara Otomatis di OSS.
Untuk informasi lebih lanjut tentang cara mengunduh beberapa objek OSS dalam satu paket, lihat Gunakan Function Compute untuk Mengemas dan Mengunduh Beberapa Objek dari OSS.
Untuk informasi lebih lanjut tentang cara memproses file audio dan video, mendapatkan informasi audio dan video, atau menambahkan watermark ke file audio dan video, lihat Gunakan Aplikasi Berbasis FFmpeg di Function Compute untuk Memproses File Audio dan Video.
Jika Anda ingin mempercepat transkoding video besar atau melakukan operasi kompleks, Anda dapat menggunakan CloudFlow untuk mengembangkan sistem pemrosesan video. Untuk informasi lebih lanjut, lihat Bangun Sistem Pemrosesan Audio dan Video yang Elastis dan Sangat Tersedia dalam Arsitektur Serverless.