Fungsi event dapat merespons berbagai event dari layanan cloud, seperti unggahan file ke Object Storage Service (OSS) atau alert yang dipicu oleh layanan pemantauan. Saat menggunakan fungsi event, Anda hanya perlu menulis logika pemrosesan—tanpa perlu mengelola integrasi event atau sumber daya komputasi yang mendasarinya. Function Compute menjalankan instans hanya saat diperlukan, melakukan scaling secara otomatis, dan menghapus instans setelah event selesai diproses. Anda hanya dikenai biaya berdasarkan sumber daya yang digunakan.
Kasus penggunaan
Bayangkan Anda perlu menyimpan file di OSS. Untuk mempercepat unggahan, Anda terlebih dahulu mengompres file tersebut ke dalam format ZIP. Namun, Anda ingin menggunakan file tersebut secara langsung, bukan arsip ZIP-nya. Hal ini memerlukan proses otomatis untuk mengekstrak file dan menyimpannya kembali ke OSS.
Pendekatan tradisional mengharuskan Anda membangun dan mengintegrasikan beberapa program untuk memantau serta menangani perubahan file di OSS, serta men-deploy dan memelihara program-program tersebut. Dengan fungsi event, Anda dapat fokus sepenuhnya pada logika pemrosesan file. Setiap kali file diunggah ke OSS, sebuah event akan dihasilkan. Jika event tersebut memenuhi kondisi yang telah Anda tentukan, fungsi tersebut akan secara otomatis dipicu untuk menjalankan handler Anda. Setelah tugas selesai, Function Compute secara otomatis melepaskan sumber daya komputasi guna menghemat biaya.
Karena Anda mungkin belum memiliki bucket OSS, tutorial ini menggunakan contoh praktis untuk memandu Anda dalam mengimplementasikan fungsi event.
Anda akan membuat simulasi event unggahan file OSS. Event ini memanggil fungsi event untuk memproses file dan mencetak informasi—seperti nama file dan nama bucket—di Konsol.
Dalam tutorial ini, Anda akan mempelajari cara:
Menggunakan Konsol untuk membuat fungsi event, menulis handler, dan menguji fungsi secara end-to-end.
Memahami konsep penting seperti runtime Function Compute dan runtime bawaan.
Memahami parameter handler
eventdancontext.
Prasyarat
Prosedur
Langkah 1: Pilih jenis fungsi
Login ke Konsol Function Compute. Di panel navigasi kiri, pilih . Di bilah navigasi atas, pilih wilayah tempat Anda ingin membuat fungsi, klik Create Function, lalu pilih dan buat Event Function sesuai petunjuk.
Langkah 2: Pilih runtime
Python
Untuk Runtime, pilih Built-in Runtimes > Python > Python 3.10.
Kami menyarankan Anda menggunakan built-in runtime untuk fungsi event karena sudah mencakup dependensi yang diperlukan untuk merespons event dari layanan cloud lain (misalnya modul Python oss2). Untuk informasi lebih lanjut, lihat Environment overview. Jika Anda menggunakan custom runtime atau Custom Container runtime, Anda harus menginstal dependensinya sendiri. Untuk perbandingan detail antar runtime, lihat Select a runtime.Node.js
Untuk Runtime, pilih Built-in Runtimes > Node.js > Node.js 20.
Kami menyarankan Anda menggunakan built-in runtime untuk fungsi event karena sudah mencakup dependensi yang diperlukan untuk merespons event dari layanan cloud lain (misalnya modul Node.js ali-oss). Untuk informasi lebih lanjut, lihat Environment overview. Jika Anda menggunakan custom runtime atau Custom Container runtime, Anda harus menginstal dependensinya sendiri. Untuk perbandingan detail antar runtime, lihat Select a runtime.Langkah 3: Buat fungsi
Pilih sampel Hello, world! untuk membuat fungsi. Pertahankan nilai default untuk Advanced Settings, lalu klik Create.
Setelah fungsi dibuat, Anda dapat melihat kode sampel yang dihasilkan di WebIDE pada tab Code. Berikut adalah kode sampel untuk Python.
# -*- coding: utf-8 -*-
import logging
import json
# Untuk mengaktifkan fitur initializer (https://www.alibabacloud.com/help/document_detail/2513452.html)
# implementasikan fungsi initializer seperti di bawah ini:
# def initializer(context):
# logger = logging.getLogger()
# logger.info('initializing')
def handler(event, context):
# evt = json.loads(event)
logger = logging.getLogger()
logger.info('hello world')
return 'hello world'Kode sampel Hello, world! secara otomatis menghasilkan templat fungsi dengan titik masuk. Anda dapat membangun kode bisnis Anda berdasarkan templat ini pada langkah-langkah selanjutnya.
Langkah 4: Modifikasi dan deploy kode sampel
Bahasa terkompilasi seperti Java tidak mendukung WebIDE; bahasa tersebut memerlukan kompilasi lokal dan unggah paket kode.
Python
Di WebIDE Konsol, buka index.py, ganti kode yang ada dengan kode berikut, lalu klik Deploy.
Node.js
Di WebIDE Konsol, buka index.mjs, ganti kode yang ada dengan kode berikut, lalu klik Deploy.
Langkah 5: Uji fungsi
Untuk mensimulasikan pemicuan fungsi oleh unggahan file OSS, kami akan mendefinisikan event simulasi dan menggunakannya untuk memicu fungsi.
Selain menggunakan event simulasi, Anda juga dapat menggunakan event OSS nyata untuk memicu fungsi guna pengujian. Untuk informasi lebih lanjut, lihat Next steps.
Buat event simulasi: Di halaman Function Details, klik tab Code. Klik panah tarik-turun di sebelah kanan Test Function dan pilih Configure Test Parameters. Di daftar Event Template, pilih OSS. Konsol secara otomatis menghasilkan event simulasi dalam format yang sama dengan event OSS nyata.
Anda dapat menyesuaikan Event Name dan nilai parameter dalam objek event, seperti nama bucket OSS dan nama file. Setelah selesai, klik OK.
Di tab Code, klik Test Function untuk memicu fungsi. Setelah eksekusi berhasil, lihat Response. Nilai kembali 0 menunjukkan bahwa event berhasil diproses. Klik Log Output untuk melihat log yang dihasilkan selama eksekusi fungsi.
Saat Anda menguji fungsi, Function Compute meneruskan konten event tiruan ke handler
handlermelalui parametereventdan mengeksekusi kode yang telah Anda definisikan pada langkah sebelumnya untuk mengurai parametereventdan memproses file.Output log menampilkan informasi kunci berikut:
FunctionCompute python3 runtime inited, diikuti oleh empat entri log tingkat [INFO]: Parsing event information..., OSS bucket name is test-bucket, file name is source/example.zip, Region is cn-hangzhou, Starting event processing..., Event processing completed..., yang menunjukkan bahwa fungsi telah berhasil mengurai informasi event OSS simulasi dan menyelesaikan pemrosesan file.
Langkah 6: (Opsional) Bersihkan sumber daya
Function Compute dikenai biaya berdasarkan penggunaan sumber daya aktual. Fungsi yang tidak dipanggil tidak dikenai biaya. Namun, perhatikan produk cloud atau sumber daya lain yang terkait dengan fungsi tersebut, seperti data yang disimpan di OSS dan File Storage NAS (NAS).
Untuk menghapus fungsi, login ke Konsol Function Compute, pilih , lalu pilih wilayah. Di kolom Actions fungsi yang dituju, klik Delete. Di kotak dialog, pastikan fungsi tersebut tidak memiliki sumber daya terkait seperti trigger, lalu konfirmasi penghapusan.
Langkah selanjutnya
Anda kini telah membuat fungsi event di Konsol, memodifikasi handler, dan menguji fungsi dengan event tiruan. Anda dapat merujuk ke operasi lanjutan berikut berdasarkan kebutuhan bisnis Anda:
Tambahkan trigger:
Karena Anda mungkin belum memiliki bucket OSS, contoh ini menggunakan event unggahan OSS simulasi untuk pengujian. Untuk beban kerja nyata, tambahkan trigger OSS ke fungsi tersebut. Untuk informasi lebih lanjut, lihat Configure a native OSS trigger.
Selain penyimpanan objek, event dari banyak layanan Alibaba Cloud (seperti berbagai antrian pesan, Tablestore, dan SLS) juga dapat memicu Function Compute. Untuk daftar trigger yang didukung, lihat Trigger overview.
Tambahkan dependensi: Built-in runtimes mencakup dependensi umum untuk pemrosesan event, tetapi mungkin tidak memenuhi kebutuhan produksi Anda. Pendekatan paling sederhana adalah mengemas kode dan dependensi Anda ke dalam file ZIP (paket kode) dan mendeploynya ke Function Compute. Untuk informasi lebih lanjut, lihat Deploy a code package. Untuk mengurangi ukuran paket kode dan mempercepat cold start fungsi, gunakan layer untuk mengelola dependensi. Untuk informasi lebih lanjut, lihat Create a custom layer.
Konfigurasikan logging: Untuk memudahkan debugging, troubleshooting, atau audit keamanan fungsi, kami menyarankan agar Anda mengonfigurasi logging untuk fungsi Anda. Untuk informasi lebih lanjut, lihat Configure the logging feature.
Referensi
Selain menggunakan Konsol, Anda juga dapat menggunakan alat command-line Serverless Devs untuk melakukan operasi di atas. Untuk informasi lebih lanjut, lihat Quick start.
Kami merekomendasikan tutorial berikut untuk mempelajari lebih lanjut tentang fungsi event:
