全部产品
Search
文档中心

Function Compute:Dasar-Dasar

更新时间:Oct 24, 2025

Topik ini menjelaskan konsep dasar terkait pengembangan kode di Function Compute, termasuk penanganan, panggilan balik siklus hidup untuk instance fungsi, dan log.

Penanganan

Anda harus menentukan penanganan saat membuat fungsi. Waktu proses Function Compute memuat dan memanggil penanganan ini untuk memproses permintaan.

Penanganan dalam waktu proses bawaan mengikuti format standar. Mereka memproses peristiwa dari berbagai sumber, seperti Object Storage Service (OSS), Simple Log Service, ApsaraMQ for RocketMQ, dan pemicu EventBridge, kapan pun sumber-sumber ini memanggil fungsi Anda. Anda juga dapat mengatur Pemicu HTTP untuk fungsi Anda. Dalam hal ini, Anda akan diberikan Uniform Resource Identifier (URI) titik akhir yang dapat digunakan untuk mengirim permintaan HTTP secara langsung guna memanggil fungsi tersebut.

Penanganan dalam runtime kustom atau runtime Kontainer Kustom berbeda dari yang ada di runtime bawaan. Untuk informasi lebih lanjut, lihat Fungsi web.

Untuk menentukan penanganan, konfigurasikan parameter Handler di Konsol Function Compute. Untuk informasi lebih lanjut, lihat Buat sebuah fungsi.

Panggilan balik siklus hidup untuk instance fungsi

Dalam mode sesuai permintaan, instance dibuat secara otomatis untuk menangani permintaan masuk. Saat tidak sedang memproses permintaan, instance sesuai permintaan dibekukan. Instance tersebut akan dihapus jika tetap dalam keadaan beku selama periode tertentu. Anda dapat mengonfigurasi panggilan balik siklus hidup untuk instance agar melakukan operasi panggilan balik pada instance ketika status instance berubah. Semua jenis waktu proses Function Compute mendukung panggilan balik Initializer dan PreStop. Untuk informasi lebih lanjut, lihat Konfigurasi siklus hidup instance.

Initializer hooks

Kait Initializer dijalankan setelah instance berhasil dimulai, namun sebelum penanganan dijalankan. Function Compute menjamin bahwa kait Initializer dipanggil hanya sekali per instance dan harus diselesaikan dengan sukses. Jika eksekusi kait Initializer gagal, perilakunya bergantung pada tipe pemanggilan: untuk pemanggilan sinkron, sistem mengembalikan kesalahan yang sesuai; untuk pemanggilan asinkron, percobaan ulang dilakukan berdasarkan kebijakan percobaan ulang yang dikonfigurasi pengguna.

Anda dapat memasukkan logika layanan yang memakan waktu ke dalam panggilan balik Initializer. Dengan demikian, tidak perlu menjalankan logika layanan semacam itu setiap kali fungsi dipanggil, sehingga mengurangi latensi fungsi. Contoh logika layanan yang memakan waktu meliputi pembuatan kumpulan koneksi, memuat dependensi fungsi, dan melakukan tugas terkait basis data lainnya.

PreStop hooks

Panggilan balik PreStop dieksekusi sebelum instance fungsi dihapus. Anda dapat menggunakan panggilan balik ini untuk melakukan tugas tertentu sebelum instance dihapus. Sebagai contoh, Anda dapat mengonfigurasi panggilan balik PreStop untuk memastikan bahwa koneksi basis data ditutup dan status instance dilaporkan dan diperbarui sebelum dihapus.

Log

Catatan
  • Anda harus mengonfigurasi penyimpanan log tingkat layanan untuk menyimpan log fungsi Function Compute. Untuk informasi lebih lanjut, lihat Konfigurasi fitur logging.

  • Jika Anda mengaktifkan fitur logging saat membuat fungsi, Function Compute secara otomatis menyiapkan penyimpanan log default untuk Anda.

Function Compute terintegrasi dengan Simple Log Service untuk menyimpan log pemanggilan fungsi dan log yang dicetak dalam kode fungsi ke penyimpanan log. Anda dapat menggunakan pernyataan logging yang disediakan oleh Function Compute untuk mencatat log fungsi, yang memudahkan debugging dan pemecahan masalah. Tabel berikut menjelaskan pernyataan pencetakan log bawaan dari berbagai bahasa pemrograman, bersama dengan pernyataan logging yang disediakan oleh Function Compute.

Bahasa pemrograman

Pernyataan pencetakan log bawaan bahasa pemrograman

Pernyataan logging yang disediakan oleh Function Compute

Referensi

Node.js

console.log()

context.logger.info()

Cetak log

Python

print()

logging.getLogger().info()

Cetak log

Java

System.out.println()

context.getLogger().info()

Cetak log

PHP

echo "" . PHP_EOL

$GLOBALS['fcLogger']->info()

Cetak log

C#

Console.WriteLine("")

context.Logger.LogInformation()

Cetak log

Golang

log.Println()

fctx, _ := fccontext.FromContext(ctx) fctx.GetLogger().Info()

Tampilkan log

Baik log yang dicetak menggunakan pernyataan pencetakan log bawaan bahasa pemrograman maupun pernyataan logging yang disediakan oleh Function Compute dikumpulkan dan disimpan di penyimpanan log. Log terakhir ditandai dengan ID permintaan untuk mempermudah penyaringan.

# Log dicetak menggunakan pernyataan pencetakan log bawaan bahasa pemrograman
# print('hello world')
message:  hello world

# Log dicetak menggunakan pernyataan logging yang disediakan oleh Function Compute
# logger.info('hello world')
message:  2020-03-13T04:06:49.099Z f84a9f4f-2dfb-41b0-9d6c-1682a2f3a650 [INFO] hello world
            

Elemen log

Log eksekusi fungsi berisi nama layanan, nama fungsi, versi saat ini, alias, dan log kode.

Contoh berikut menunjukkan struktur data log eksekusi fungsi:

__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 FC Invoke Start RequestId: f84a9f4f-2dfb-41b0-9d6c-1682a2f3a650 saat eksekusi fungsi dimulai.

  • Sistem mencetak FC Invoke End RequestId: f84a9f4f-2dfb-41b0-9d6c-1682a2f3a650 saat eksekusi fungsi berakhir.

Sistem operasi

Waktu proses bawaan Function Compute beroperasi pada Debian 9 LTS, Debian 10 LTS, Debian 11 LTS, atau Debian 12 LTS, dan hanya kompatibel dengan arsitektur x86_64.

Anda dapat menyesuaikan sistem operasi (OS) dengan mengonfigurasi lapisan atau variabel lingkungan. Ambil zona waktu sebagai contoh. Function Compute beroperasi pada waktu UTC secara default, namun, setelah Anda menyetel variabel lingkungan TZ ke Asia/Shanghai, Function Compute akan beroperasi pada waktu UTC+8. Untuk informasi lebih lanjut tentang mengonfigurasi lapisan dan variabel lingkungan, lihat Konfigurasi lapisan dan Konfigurasi variabel lingkungan.