Topik ini mencakup handler, kait siklus hidup instans, pencatatan log, dan sistem operasi di Function Compute.
Handlers
Setiap fungsi memerlukan handler. Waktu proses Function Compute memuat dan memanggil handler tersebut untuk memproses permintaan masuk.
Waktu proses bawaan
Handler dalam waktu proses bawaan mengikuti format standar dan memproses event dari sumber pemicu seperti Object Storage Service (OSS), Simple Log Service, ApsaraMQ for RocketMQ, serta Pemicu EventBridge. Anda juga dapat menyiapkan Pemicu HTTP untuk suatu fungsi, yang menyediakan titik akhir Uniform Resource Identifier (URI) guna pemanggilan HTTP langsung.
Waktu proses kustom dan Custom Container
Handler dalam waktu proses kustom atau Custom Container berbeda dari waktu proses bawaan. Untuk detail selengkapnya, lihat Fungsi web.
Konfigurasikan handler
Tetapkan parameter Handler di Konsol Function Compute. Untuk informasi lebih lanjut, lihat Buat fungsi.
Kait siklus hidup instans
Dalam mode permintaan, Function Compute secara otomatis membuat instans untuk menangani permintaan masuk. Instans mode permintaan dibekukan saat tidak memproses permintaan, dan instans yang tetap dibekukan selama periode tertentu akan dihapus.
Anda dapat mengonfigurasi kait siklus hidup untuk menjalankan logika kustom saat status instans berubah. Semua jenis waktu proses mendukung kait Initializer dan PreStop. Untuk informasi lebih lanjut, lihat Konfigurasikan siklus hidup instans.
Initializer hook
Kait Initializer dijalankan setelah instans dimulai tetapi sebelum handler dieksekusi. Function Compute menjamin bahwa kait Initializer hanya dijalankan sekali per instans dan harus berhasil diselesaikan. Jika gagal, perilakunya bergantung pada jenis pemanggilan:
Pemanggilan sinkron — sistem mengembalikan error.
Pemanggilan asinkron — sistem melakukan retry berdasarkan kebijakan retry yang dikonfigurasi.
Tempatkan logika inisialisasi yang memakan waktu di kait Initializer untuk menghindari pengulangan pada setiap pemanggilan. Contoh umum meliputi:
Membuat kolam koneksi
Memuat dependensi fungsi
Tugas penyiapan terkait database
PreStop hook
Kait PreStop dijalankan sebelum instans fungsi dihapus. Gunakan kait ini untuk tugas pembersihan, seperti:
Menutup koneksi database
Melaporkan dan memperbarui status instans
Log
Function Compute terintegrasi dengan Simple Log Service untuk menyimpan log pemanggilan fungsi dan log yang dicetak dalam kode fungsi.
Konfigurasikan penyimpanan log tingkat layanan untuk menyimpan log fungsi. Untuk informasi lebih lanjut, lihat Konfigurasikan fitur logging.
Jika logging diaktifkan saat membuat fungsi, Konsol Function Compute secara otomatis menyiapkan penyimpanan log default.
Pernyataan logging
Setiap bahasa yang didukung memiliki pernyataan log bawaan dan pernyataan log Function Compute. Pernyataan log Function Compute memberi tag setiap entri dengan ID permintaan, sehingga mempermudah penyaringan.
Bahasa | Pernyataan bawaan | Pernyataan Function Compute | Referensi |
Node.js |
|
| |
Python |
|
| |
Java |
|
| |
PHP |
|
| |
C# |
|
| |
Golang |
|
|
Kedua jenis pernyataan tersebut mengirim log ke penyimpanan log. Perbedaannya adalah bahwa pernyataan Function Compute memberi tag setiap entri log dengan ID permintaan:
# Pernyataan bawaan: print('hello world')
message: hello world
# Pernyataan Function Compute: logger.info('hello world')
message: 2020-03-13T04:06:49.099Z f84a9f4f-2dfb-41b0-9d6c-1682a2f3a650 [INFO] hello worldStruktur log
Log eksekusi fungsi berisi nama layanan, nama fungsi, versi saat ini, alias, dan log kode. Contoh berikut menunjukkan struktur data:
__source__:
__tag__:__receive_time__: 1584072413
__topic__: FCLogs:myFunction
functionName: myFunction
message: 2020-03-13T04:06:49.099Z f84a9f4f-2dfb-41b0-9d6c-1682a2f3a650 [INFO] hello world
qualifier: LATEST
serviceName: myService
versionId:Sistem mencetak penanda berikut di awal dan akhir setiap eksekusi fungsi:
Mulai:
FC Invoke Start RequestId: f84a9f4f-2dfb-41b0-9d6c-1682a2f3a650Berakhir:
FC Invoke End RequestId: f84a9f4f-2dfb-41b0-9d6c-1682a2f3a650
Sistem operasi
Waktu proses bawaan dijalankan pada Debian 9 LTS, Debian 10 LTS, Debian 11 LTS, atau Debian 12 LTS. Hanya arsitektur x86_64 yang didukung.
Anda dapat menyesuaikan sistem operasi melalui layer atau variabel lingkungan. Misalnya, Function Compute menggunakan UTC secara default. Tetapkan variabel lingkungan TZ ke Asia/Shanghai untuk beralih ke UTC+8. Untuk informasi lebih lanjut, lihat Konfigurasikan layer dan Konfigurasikan variabel lingkungan.