Halaman ini mencakup konsep inti dalam Function Compute (FC), yang diorganisasi berdasarkan tiga tahap penggunaan fungsi FC: membuat, mengonfigurasi, dan memanggilnya.
Fungsi FC merupakan unit dasar untuk penjadwalan dan eksekusi sumber daya dalam Function Compute. Setiap fungsi terdiri dari kode fungsi dan konfigurasi fungsi.
Membuat fungsi
Saat membuat fungsi, pilih jenis fungsi dan lingkungan runtime, lalu unggah kode fungsi Anda. Anda dapat menyesuaikan parameter konfigurasi lain setelah pembuatan.
Untuk panduan memilih pendekatan yang sesuai dengan kasus penggunaan Anda, lihat Panduan pemilihan teknis.
Jenis fungsi
Event function
Event function merespons pemicu dari layanan Alibaba Cloud seperti Object Storage Service (OSS), Kafka, dan Simple Log Service (SLS). Tulis handler Anda berdasarkan antarmuka yang ditentukan oleh Function Compute. Lihat Membuat fungsi yang dipicu event.
Web function
Web function menggunakan framework web populer — Flask, ThinkPHP, Express, atau SpringBoot — dan mengekspos antarmuka HTTP. Tulis handler Anda berdasarkan antarmuka framework tersebut. Lihat Membuat web function.
Task function
Task function memproses permintaan asinkron dalam mode tugas. Sistem melacak status setiap tugas, dan Anda dapat memulai atau menghentikan tugas secara manual. Jenis fungsi ini cocok untuk beban kerja offline seperti pekerjaan terjadwal, pemrosesan audio dan video, serta pemrosesan data batch. Lihat Membuat task function.
GPU function
GPU function menjalankan beban kerja yang dipercepat GPU seperti Stable Diffusion WebUI, ComfyUI, RAG, atau TensorRT. Sebarkan proyek-proyek ini sebagai container image. Lihat Membuat fungsi yang dipercepat GPU.
Lingkungan runtime
Lingkungan runtime menentukan cara Function Compute menjalankan kode fungsi Anda.
Waktu proses bawaan
Waktu proses bawaan (juga disebut waktu proses pradefinisi) dikonfigurasi sebelumnya oleh platform Function Compute. Tulis penanganan fungsi Anda berdasarkan antarmuka yang ditentukan oleh Function Compute. Waktu proses bawaan menawarkan `cold start` tercepat tetapi tidak mendukung beberapa permintaan serentak per instans. Waktu proses ini paling cocok untuk skenario yang dipicu event menggunakan pemicu OSS, Kafka, atau SLS. Lihat waktu proses Function Compute.
Event (`event`): Data event diteruskan ke fungsi Anda sebagai dokumen JSON. Waktu proses mengonversinya menjadi objek dan meneruskannya ke parameter
eventdari penanganan fungsi Anda. Jika event berasal dari layanan Alibaba Cloud lainnya, formatnya mengikuti spesifikasi layanan tersebut. Lihat Format event pemicu.Context (`context`): Saat FC menjalankan fungsi Anda, objek context diteruskan ke parameter
contexttracing dari penanganan fungsi Anda. Objek ini berisi informasi mengenai pemanggilan, layanan, fungsi, dan lingkungan eksekusi. Lihat Context.
Custom runtime
Custom runtime mendukung framework web utama seperti Flask, ThinkPHP, Express, dan SpringBoot. Paket penyebaran Anda adalah file ZIP yang berisi program server HTTP. Atur Start Command dan Start Arguments dalam konfigurasi fungsi untuk menjalankan server HTTP. Lihat Cara kerjanya.
Custom image
Fitur custom image memungkinkan Anda menggunakan container image sebagai artefak pengiriman untuk fungsi Anda. Unggah custom image ke Container Registry (ACR) atau gunakan contoh gambar. Custom image adalah satu-satunya jenis runtime yang mendukung GPU function. Lihat Membuat fungsi yang menggunakan custom image.
Tipe instans
Provisioned instance
Provisioned instance diikat ke GPU function saat Anda membeli kolam sumber daya provisioned. Kolam sumber daya provisioned hanya tersedia untuk GPU function dan ditagih berdasarkan langganan bulanan. Model penagihan ini memungkinkan Anda memesan sumber daya GPU terlebih dahulu untuk memastikan operasi yang stabil. Setelah diikat, alokasikan provisioned instances untuk menangani permintaan masuk.
Elastic instance
Elastic instance melakukan penskalaan secara otomatis berdasarkan volume pemanggilan. FC membuat instans saat trafik meningkat dan menghapusnya saat trafik turun. Pemanggilan pertama setelah kejadian scale-to-zero harus menunggu cold start.
Elastic instance (light hibernation (sebelumnya idle))
Saat jumlah minimum instans diatur ke 1 atau lebih tinggi dan sakelar light hibernation diaktifkan, instans idle secara otomatis memasuki light hibernation. Dalam keadaan ini, sistem membekukan sebagian sumber daya instans dan hanya mengenakan biaya keep-alive minimal. Saat permintaan baru tiba, sumber daya yang dibekukan dipulihkan dan instans menjadi aktif. Hot start ini biasanya memakan waktu lebih dari 2 detik, tergantung ukuran model.
Elastic instances memasuki status penagihan light hibernation dalam skenario berikut:
Instans idle setelah Anda mengatur jumlah minimum instans ke 1 atau lebih tinggi dan mengaktifkan sakelar light hibernation.
Instans berada dalam periode keep-alive dalam skenario session affinity.
Instans tidak memproses tugas latar belakang dalam skenario tugas latar belakang.
Elastic instance (active)
Elastic instances memasuki status penagihan aktif dalam skenario berikut:
Instans dimulai oleh permintaan saat jumlah minimum instans tidak diatur (perilaku default: scale to zero saat idle).
Instans menjadi aktif untuk menangani permintaan saat jumlah minimum instans diatur ke 1 atau lebih tinggi, terlepas dari apakah sakelar light hibernation diaktifkan atau tidak.
Instans memproses permintaan dalam skenario session affinity.
Instans memproses tugas latar belakang dalam skenario tugas latar belakang.
Jumlah minimum instans
Mengatur jumlah minimum instans ke 1 atau lebih tinggi menghilangkan cold start untuk permintaan pertama pada elastic instance dan menjamin kapasitas komputasi yang dicadangkan. Nilai default adalah 0, artinya instans akan scale to zero saat idle.
Untuk layanan yang bergantung pada session affinity — seperti WebSocket dan gRPC — jumlah minimum instans 1 atau lebih tinggi memungkinkan penjadwalan session affinity dan koneksi persisten, yang menjaga stabilitas interaksi real-time.
Konfigurasikan penskalaan berbasis jadwal atau metrik untuk menyesuaikan jumlah minimum instans secara dinamis: naikkan selama periode puncak atau saat ambang batas metrik tercapai, dan turunkan saat beban menurun untuk memaksimalkan efisiensi sumber daya. Lihat Batas penskalaan instans dan kebijakan elastis.
Referensi cold start
Tabel berikut merangkum bagaimana setiap model instans memengaruhi perilaku cold start, untuk membantu Anda memilih pendekatan yang tepat:
| Instance Model | Perilaku cold start | Paling cocok untuk |
|---|---|---|
| Elastic instance (jumlah minimum = 0) | Cold start pada setiap kejadian scale-from-zero | Beban kerja yang sensitif biaya dan toleran latensi |
| Elastic instance (jumlah minimum >= 1, light hibernation diaktifkan) | Hot start (biasanya > 2 dtk) saat memulihkan dari hibernasi | Inferensi GPU, pemuatan model besar |
| Elastic instance (jumlah minimum >= 1, light hibernation dinonaktifkan) | Tidak ada cold start; instans tetap aktif | Layanan latensi rendah, WebSocket, gRPC |
| Provisioned instance | Tidak ada cold start; sumber daya GPU dicadangkan secara permanen | Beban kerja GPU produksi yang memerlukan ketersediaan konsisten |
Mengonfigurasi fungsi
Setelah membuat fungsi, sesuaikan item konfigurasi berikut sesuai kebutuhan.
Konfigurasi dasar
Tipe instans
FC menyediakan berbagai tipe instans dengan spesifikasi sumber daya berbeda. Lihat Tipe instans.
Disk sementara
Setiap instans fungsi memiliki disk penyimpanan sementara yang dipasang ke direktori root instans. Isi disk dihapus saat instans diklaim ulang. Untuk penyimpanan file persisten, pasang sistem file NAS atau sistem file OSS sebagai gantinya.
Instans GPU full-card (seri Tesla dengan 16 GB, seri Ada dengan 48 GB) mendukung ukuran disk 30 GB atau 60 GB. Tipe instans lain mendukung 512 MB atau 10 GB. Ukuran disk 512 MB tidak dikenai biaya.
Pemicu
Beberapa layanan Alibaba Cloud dapat memanggil fungsi FC secara langsung melalui pemicu. Saat event tertentu terjadi, layanan tersebut mendorong event ke FC dan fungsi dipanggil segera. Satu fungsi dapat memiliki beberapa pemicu, masing-masing bertindak sebagai client independen. Setiap event yang diteruskan FC ke fungsi Anda berisi data dari tepat satu pemicu. Lihat Pengantar pemicu.
Runtime
FC mendukung berbagai bahasa pemrograman melalui runtime. Runtime menyediakan lingkungan eksekusi khusus bahasa yang meneruskan event pemanggilan, informasi konteks, dan respons antara FC dan fungsi Anda. Lihat Pengantar runtime.
Variabel lingkungan
Variabel lingkungan disimpan sebagai pasangan kunci-nilai string dalam konfigurasi fungsi. Setiap fungsi memiliki kumpulan variabel lingkungan independen sendiri. Gunakan variabel lingkungan untuk mengubah perilaku fungsi tanpa memodifikasi kode. Lihat Mengonfigurasi variabel lingkungan.
Lapisan
Lapisan adalah file .zip yang berisi kode tambahan atau konten lain — biasanya pustaka, runtime kustom, file data, atau file konfigurasi. FC menyediakan lapisan publik resmi dan mendukung membuat lapisan kustom.
Menggunakan lapisan memberikan tiga manfaat:
Paket penyebaran lebih kecil: Memindahkan dependensi ke lapisan mengurangi ukuran paket penyebaran fungsi Anda dan mempercepat penyebaran kode.
Pemisahan tanggung jawab: Perbarui dependensi fungsi tanpa menyentuh kode fungsi, dan sebaliknya.
Dependensi bersama: Tambahkan satu lapisan ke sejumlah fungsi dalam akun Anda alih-alih mengemas dependensi yang sama ke setiap paket penyebaran.
Fungsi yang menggunakan custom image (Custom Container) tidak mendukung lapisan. Kemas runtime, pustaka, dan dependensi lain langsung ke dalam container image saat Anda membuat fungsi yang menggunakan custom image.
Izin
Berikan akses fungsi ke layanan Alibaba Cloud lain dengan menetapkan peran Resource Access Management (RAM). FC menggunakan peran RAM untuk menghasilkan kredensial sementara dan meneruskannya ke kode fungsi Anda. Lihat Gunakan peran fungsi untuk memberikan izin fungsi mengakses layanan Alibaba Cloud lain.
Log
FC terintegrasi dengan Simple Log Service (SLS). Setelah mengonfigurasi logging, FC secara otomatis mengumpulkan log fungsi dan mengirimkannya ke Logstore yang ditentukan. Lihat Mengonfigurasi fitur logging.
Jaringan
Secara default, fungsi dapat mengakses internet tetapi tidak dapat mengakses sumber daya dalam Virtual Private Cloud (VPC). Untuk mengakses sumber daya VPC atau mengizinkan VPC tertentu memanggil fungsi, konfigurasikan pengaturan jaringan dan izin untuk fungsi tersebut. Lihat Mengonfigurasi pengaturan jaringan.
Penyimpanan
FC mendukung pemasangan sistem file Apsara File Storage NAS dan bucket OSS. Lihat Mengonfigurasi sistem file NAS dan Mengonfigurasi akses OSS.
Konfigurasi asinkron
FC mengeksekusi permintaan asinkron dalam mode tugas. Dalam mode tugas, sistem mencatat status eksekusi setiap tugas pada setiap tahap dan menyediakan kueri status tugas, metrik antrian tugas, deduplikasi tugas, serta penghentian tugas proaktif.
Mode tugas asinkron cocok untuk beban kerja berdurasi panjang. Mode ini tidak cocok untuk pemrosesan yang sensitif latensi (waktu respons di bawah 100 ms) atau beban kerja yang terus-menerus mengirimkan ribuan atau lebih tugas per detik. Lihat Pemanggilan asinkron.
Siklus hidup
Instans fungsi dibuat dan dihapus secara dinamis berdasarkan volume permintaan real-time. Setiap instans fungsi melewati tiga tahap siklus hidup: Creating, Invoke, dan Destroy. Lihat Mengonfigurasi instance lifecycle hook.
Pemeriksaan kesehatan
FC mendukung pemeriksaan kesehatan berkala untuk instans web function dan GPU function. Pemeriksaan kesehatan mencegah permintaan diarahkan ke instans yang tidak sehat, sehingga mengurangi kegagalan permintaan. Lihat Mengonfigurasi pemeriksaan kesehatan untuk instans.
DNS
Fitur DNS kustom mempercepat akses situs. Fitur ini hanya mendukung built-in runtime dan custom runtime. Lihat Mengonfigurasi DNS kustom.
Nama domain kustom
Ikat nama domain kustom ke fungsi atau aplikasi untuk mengaksesnya melalui URL yang stabil. Nama domain kustom juga dapat berfungsi sebagai origin untuk domain yang dipercepat CDN, sehingga mengurangi latensi akses bagi pengguna Anda. Lihat Mengonfigurasi nama domain kustom.
Memanggil fungsi
Setelah menyebar fungsi FC, panggil fungsi tersebut dengan berbagai cara: gunakan Konsol Function Compute untuk menguji dengan event contoh, panggil melalui SDK atau API, gunakan URL fungsi (titik akhir HTTP atau HTTPS), atau picu dari sumber event. Bagian berikut menjelaskan konsep terkait pemanggilan fungsi.
Pemanggilan sinkron
FC memproses event dan segera mengembalikan hasilnya. Lihat Pemanggilan sinkron.
Pemanggilan asinkron
FC menerima event dan segera mengembalikan respons, tanpa menunggu tugas latar belakang selesai. Sistem memproses event secara andal tetapi tidak mengembalikan detail pemanggilan spesifik atau status eksekusi fungsi. Untuk mengambil hasil pemanggilan asinkron, konfigurasikan tujuan pemanggilan asinkron. Lihat Ikhtisar fitur.
Analisis pemanggilan
Fitur analisis pemanggilan merangkum status eksekusi pada tingkat permintaan. Saat diaktifkan, FC mengumpulkan informasi metrik untuk setiap eksekusi fungsi. Lihat Log metrik tingkat permintaan.
Jumlah maksimum instans
Jumlah maksimum instans membatasi berapa banyak instans yang dapat dijalankan fungsi secara bersamaan. Batas maksimum default adalah 100 instans per Akun Alibaba Cloud per Wilayah. Batas aktual ditampilkan di Pusat Kuota. Untuk menaikkan batas, ajukan permintaan melalui Pusat Kuota.
Konkurensi per instans
Konkurensi per instans adalah jumlah permintaan yang dapat diproses satu instans secara simultan. Saat membuat fungsi dengan custom runtime atau container image, konfigurasikan beberapa permintaan konkuren per instans untuk mengurangi waktu eksekusi, menurunkan jumlah total instans, dan meningkatkan pemanfaatan sumber daya. Lihat Mengonfigurasi konkurensi.
Konsep lainnya
Versi
Menerbitkan versi menyimpan kode dan konfigurasi fungsi saat ini sebagai garis dasar yang tidak dapat diubah. Garis dasar ini tidak mencakup properti sumber daya seperti pemicu, konfigurasi tugas asinkron, dan kebijakan elastis. Versi analog dengan git commit: menangkap snapshot kode dan konfigurasi Anda pada titik waktu tertentu. Lihat Manajemen versi.
Alias
Alias adalah penunjuk ke versi fungsi tertentu. Saat fungsi dipanggil melalui alias, FC menyelesaikannya ke versi target secara transparan — pemanggil tidak perlu tahu versi mana yang ditunjuk alias tersebut. Gunakan alias untuk menerapkan rilis canary, rollback, dan penyebaran bertahap. Alias analog dengan git tag yang menandai commit untuk rilis. Lihat Manajemen alias.
Tag
Tag mengkategorikan sumber daya fungsi untuk mempermudah pencarian dan agregasi. Gunakan tag untuk mengelompokkan fungsi dan menetapkan izin operasional berbeda untuk peran berbeda pada setiap kelompok. Lihat Mengonfigurasi tag.