全部产品
Search
文档中心

Function Compute:Dasar-dasar

更新时间:Mar 01, 2026

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.

Catatan
  • 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

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

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 world

Struktur 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-1682a2f3a650

  • Berakhir: 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.