Pemicu Cloud Storage (generasi ke-1)
Di Cloud Run Functions, pemicu Cloud Storage memungkinkan suatu fungsi dipanggil sebagai respons terhadap perubahan dalam Cloud Storage. Saat menentukan pemicu Cloud Storage untuk suatu fungsi, Anda memilih jenis peristiwa dan menentukan bucket Cloud Storage. Fungsi Anda akan dipanggil setiap kali terjadi perubahan pada objek (file) di dalam bucket yang ditentukan.
Jenis peristiwa Cloud Storage berikut ini didukung:
| Peristiwa | Jenis peristiwa | Deskripsi |
|---|---|---|
| Objek diselesaikan |
|
Terjadi saat objek baru dibuat, atau objek yang ada ditimpa dan pembuatan baru objek tersebut dibuat. |
| Objek dihapus |
|
Terjadi saat objek dihapus untuk sementara. Untuk mengetahui informasi selengkapnya, lihat Penghapusan untuk sementara. |
| Objek diarsipkan |
|
Terjadi saat versi aktif sebuah objek menjadi versi lama. Untuk mengetahui informasi selengkapnya, lihat Pembuatan Versi Objek. |
| Metadata objek diperbarui |
|
Terjadi saat metadata dari objek yang ada berubah. |
Agar fungsi dapat menggunakan pemicu Cloud Storage, fungsi tersebut harus diimplementasikan sebagai fungsi berbasis peristiwa:
Jika Anda menggunakan fungsi CloudEvent, data peristiwa Cloud Storage diteruskan ke fungsi Anda dalam format CloudEvents dan payload data CloudEvent berjenis
StorageObjectData.Jika Anda menggunakan fungsi latar belakang, payload data peristiwa Cloud Storage akan diteruskan langsung ke fungsi Anda dalam format
StorageObjectData.
Repositori Google Events berisi resource tambahan untuk menangani data peristiwa.
Deployment
Anda dapat menentukan pemicu Cloud Storage saat men-deploy fungsi. Lihat Men-deploy fungsi Cloud Run untuk mengetahui petunjuk umum tentang cara men-deploy fungsi, dan lihat bagian di bawah ini untuk mengetahui informasi tambahan khusus terkait cara mengonfigurasi pemicu Cloud Storage selama deployment.
gcloud
Jika men-deploy menggunakan gcloud CLI, Anda dapat menggunakan jenis peristiwa Objek diselesaikan Cloud Storage dengan flag berikut:
gcloud functions deploy YOUR_FUNCTION_NAME \ --no-gen2 \ --trigger-bucket=YOUR_STORAGE_BUCKET \ [--retry] \ ...
- Flag
--trigger-bucketmenentukan bucket Cloud Storage yang akan dipantau oleh pemicu. Peristiwa Objek diselesaikan dalam bucket ini akan memicu panggilan ke fungsi Anda. - Flag
--retrymengontrol apakah panggilan fungsi yang gagal akan dicoba ulang secara otomatis. Lihat Mencoba kembali fungsi berbasis peristiwa untuk mengetahui informasi selengkapnya.
Untuk menggunakan jenis peristiwa selain Objek diselesaikan, gunakan flag berikut:
gcloud functions deploy YOUR_FUNCTION_NAME
--no-gen2
--trigger-event=EVENT_TYPE
--trigger-resource=YOUR_STORAGE_BUCKET
...
Peristiwa Cloud Storage lama
Fungsi lama di Cloud Run Functions (generasi ke-1) menggunakan notifikasi perubahan objek lama untuk pemicu Cloud Storage:
gcloud functions deploy YOUR_FUNCTION_NAME \ --no-gen2 \ --trigger-event=providers/cloud.storage/eventTypes/object.change \ --trigger-resource=YOUR_STORAGE_BUCKET \ ...
Jenis peristiwa ini didukung untuk fungsi lama yang telah menggunakan peristiwa ini. Namun, sebaiknya jangan gunakan jenis peristiwa ini karena mungkin akan dihapus pada tanggal yang akan datang.
Konsol
Jika men-deploy menggunakan konsol Google Cloud , Anda dapat mengonfigurasi pemicu Cloud Storage di bagian Trigger:
- Di kolom Trigger type, pilih Cloud Storage.
- Di kolom Event type, pilih jenis peristiwa.
- Di kolom Bucket, klik Browse untuk memilih bucket Cloud Storage yang akan dipantau oleh pemicu. Perubahan pada objek dalam bucket ini akan memicu panggilan ke fungsi Anda.
- Centang atau hapus centang pada kotak Retry on failure untuk mengontrol apakah panggilan fungsi yang gagal akan dicoba ulang secara otomatis. Lihat Mencoba kembali fungsi berbasis peristiwa untuk mengetahui informasi selengkapnya.
Pengiriman peristiwa
Pemicu Cloud Storage diimplementasikan dengan notifikasi Pub/Sub untuk Cloud Storage. Peristiwa tunduk pada jaminan pengiriman notifikasi Pub/Sub.
Bucket Cloud Storage dapat memiliki hingga 10 konfigurasi notifikasi yang ditetapkan untuk dipicu untuk peristiwa tertentu. Melebihi batas notifikasi bucket akan menyebabkan deployment fungsi lebih lanjut gagal dengan error seperti berikut:
Cloud Storage bucket ...: Pub/Sub notification limit reached
Anda dapat mengatasi batasan ini dengan mengelola topik Pub/Sub Anda sendiri dan mendaftarkannya untuk jenis notifikasi Cloud Storage yang ingin direspons oleh fungsi Anda. Misalnya, Anda dapat mengonfigurasi satu notifikasi untuk peristiwa yang Anda pilih (seperti pembuatan objek) ke topik Pub/Sub. Kemudian, miliki sebanyak mungkin pelanggan fungsi yang diperlukan untuk topik guna memproses peristiwa dan menyebarkannya ke beberapa tujuan. Contoh:
- Buat topik Pub/Sub Anda sendiri.
- Buat satu konfigurasi notifikasi di bucket Cloud Storage Anda
yang dipicu pada peristiwa tertentu (seperti
OBJECT_FINALIZEuntuk pembuatan objek) dan mengirimkan peristiwa tersebut ke satu topik Pub/Sub Anda. - Buat satu atau beberapa fungsi yang dipicu oleh topik Pub/Sub.
Lihat Kuota dan batas Cloud Storage untuk mempelajari lebih lanjut batasan Cloud Storage.
Langkah berikutnya
- Pelajari cara menulis fungsi berbasis peristiwa.
- Pelajari cara men-deploy fungsi Cloud Run.
- Lihat tutorial fungsi Cloud Storage untuk mengetahui contoh penulisan, deployment, dan pemanggilan fungsi dengan pemicu Cloud Storage.