Topik ini menjelaskan istilah-istilah utama dalam proses pembuatan fungsi Function Compute. Untuk informasi lebih lanjut tentang cara membuat fungsi, lihat Gunakan fungsi event untuk memproses event dari layanan Alibaba Cloud.
Proses pembuatan fungsi FC
Fungsi Function Compute (FC) merupakan unit dasar untuk penjadwalan dan eksekusi sumber daya di Function Compute. Fungsi FC terdiri atas kode fungsi dan konfigurasi fungsi. Gambar berikut menunjukkan konsep-konsep yang terkait dengan proses pembuatan fungsi.
Buat fungsi
Saat membuat fungsi, Anda dapat memilih tipe fungsi dan lingkungan runtime yang sesuai. Selanjutnya, Anda dapat mengunggah kode fungsi ke Function Compute. Parameter lainnya dapat dikonfigurasi nanti sesuai kebutuhan.
Panduan pemilihan teknis
Event function
Anda dapat memilih pemicu event, seperti pemicu OSS, pemicu Kafka, atau pemicu SLS. Anda dapat menulis program berdasarkan antarmuka yang ditentukan oleh Function Compute. Untuk informasi lebih lanjut, lihat Buat fungsi yang dipicu event.
Web function
Anda dapat memilih framework web populer, seperti Flask, ThinkPHP, Express, atau SpringBoot. Anda dapat menulis program berdasarkan antarmuka yang ditentukan oleh framework tersebut. Untuk informasi lebih lanjut, lihat Buat fungsi web.
Task function
Anda dapat memilih mode tugas untuk memproses permintaan asinkron. Status setiap tugas dilacak, dan Anda dapat memulai atau menghentikan tugas secara manual. Mode ini direkomendasikan untuk skenario offline, seperti tugas terjadwal, pemrosesan audio dan video, serta pemrosesan data. Untuk informasi lebih lanjut, lihat Buat fungsi tugas.
GPU function
Anda dapat memilih proyek AI populer, seperti Stable Diffusion WebUI, ComfyUI, RAG, atau TensorRT. Kami merekomendasikan agar proyek-proyek ini diterapkan ke Function Compute sebagai gambar. Untuk informasi lebih lanjut, lihat Buat fungsi yang dipercepat GPU.
Lingkungan runtime
Built-in runtime
Predefined runtime adalah lingkungan runtime yang telah ditentukan sebelumnya oleh platform Function Compute. Anda harus menulis penanganan permintaan berdasarkan antarmuka yang ditentukan oleh Function Compute. Predefined runtime tidak mendukung beberapa permintaan konkuren per instans, tetapi menawarkan cold start tercepat. Runtime ini cocok untuk skenario yang dipicu event menggunakan pemicu OSS, Kafka, atau SLS. Untuk informasi lebih lanjut, lihat Runtime Function Compute.
Event (
event)Data event diteruskan ke fungsi Anda sebagai dokumen JSON. Runtime mengonversi event menjadi objek dan meneruskannya ke parameter
eventpada penanganan fungsi. Jika event dihasilkan oleh layanan Alibaba Cloud lainnya, format event bergantung pada layanan tersebut. Untuk informasi lebih lanjut, lihat Format event pemicu.Context (
context)Saat Function Compute menjalankan fungsi Anda, sistem meneruskan objek context ke parameter
contextpada penanganan fungsi. Objek ini berisi informasi tentang pemanggilan, layanan, fungsi, dan lingkungan eksekusi. Untuk informasi lebih lanjut, lihat Context.
Custom runtime
Custom runtime mendukung framework web utama seperti Flask, ThinkPHP, Express, dan SpringBoot. Anda hanya perlu menulis program berdasarkan antarmuka yang ditentukan oleh framework tersebut. Untuk custom runtime, paket ZIP berisi file kode Anda merupakan program HTTP Server. Anda cukup mengatur Start Command dan Start Arguments dalam konfigurasi fungsi untuk menjalankan HTTP Server. Untuk informasi lebih lanjut, lihat Cara kerja.
Custom image
Function Compute menyediakan fitur custom image, yang memungkinkan Anda menggunakan gambar kontainer sebagai artefak pengiriman untuk fungsi. Anda dapat mengunggah custom image ke ACR lalu menggunakan gambar tersebut, atau menggunakan contoh gambar. Untuk informasi lebih lanjut, lihat Buat fungsi yang menggunakan custom image.
Di Function Compute, hanya custom image yang mendukung pembuatan GPU functions.
Provisioned instance
Setelah membeli kolam sumber daya provisioned, Anda dapat mengaitkannya ke fungsi GPU saat membuat fungsi tersebut. Kemudian, Anda dapat mengalokasikan provisioned instances untuk memproses permintaan.
Kolam sumber daya provisioned hanya tersedia untuk fungsi GPU dan menggunakan metode penagihan langganan bulanan. Metode ini membantu Anda memesan sumber daya GPU langka terlebih dahulu guna memastikan operasi bisnis yang stabil serta mencegah gangguan akibat kekurangan sumber daya.
Elastic instance
Elastic instance adalah instans yang secara otomatis diskalakan oleh Function Compute berdasarkan jumlah pemanggilan fungsi. Function Compute membuat instans saat jumlah pemanggilan meningkat dan menghapus instans saat jumlah permintaan menurun. Dalam proses ini, permintaan secara otomatis memicu pembuatan instans. Pemanggilan pertama harus menunggu instans melakukan cold start.
Elastic instance (light hibernation (sebelumnya idle))
Jika Anda mengatur jumlah minimum instans menjadi 1 atau lebih, kami merekomendasikan agar Anda mengaktifkan mode light hibernation (sebelumnya idle). Dalam mode ini, ketika instans tidak aktif dan tidak ada permintaan, sistem secara otomatis membekukan sebagian sumber dayanya. Anda hanya dikenakan biaya keep-alive minimal. Saat permintaan tiba, instans menjadi aktif kembali. Sumber daya yang dibekukan selama light hibernation dipulihkan dengan cepat. Proses hot start biasanya memakan waktu lebih dari 2 detik, tergantung pada ukuran model.
Elastic instance dalam skenario berikut secara otomatis memasuki status penagihan elastic instance (light hibernation (sebelumnya idle)):
Elastic instance tidak aktif setelah Anda mengatur jumlah minimum instans menjadi 1 atau lebih dan mengaktifkan sakelar light hibernation (sebelumnya idle).
Elastic instance berada dalam periode keep-alive dalam skenario session affinity.
Elastic instance tidak memproses tugas latar belakang dalam skenario tugas latar belakang.
Elastic instance (active)
Elastic instance dalam skenario berikut secara otomatis memasuki status penagihan elastic instance (active):
Elastic instance secara otomatis dimulai oleh permintaan saat jumlah minimum instans tidak diatur (secara default diskalakan hingga 0).
Elastic instance menjadi aktif untuk menangani permintaan setelah Anda mengatur jumlah minimum instans menjadi 1 atau lebih, terlepas dari apakah sakelar light hibernation (sebelumnya idle) diaktifkan atau tidak.
Elastic instance sedang memproses permintaan dalam skenario session affinity.
Elastic instance sedang memproses tugas latar belakang dalam skenario tugas latar belakang.
Jumlah minimum instans
Mengatur jumlah minimum instans menjadi 1 atau lebih membantu mengatasi masalah cold start pada permintaan pertama yang ditangani oleh elastic instance. Fitur ini juga memungkinkan Anda memesan sumber daya elastis guna menjamin pengiriman. Untuk layanan yang sangat bergantung pada session affinity, seperti WebSocket dan gRPC, mengatur jumlah minimum instans menjadi 1 atau lebih memungkinkan penjadwalan session affinity dan koneksi persisten, sehingga menjamin stabilitas interaksi real-time.
Anda juga dapat mengonfigurasi penskalaan berbasis jadwal dan metrik untuk menyesuaikan jumlah minimum instans secara dinamis. Sistem dapat menambah jumlah minimum instans selama periode tertentu atau saat metrik mencapai ambang batas tertentu untuk menangani beban puncak. Sistem kemudian dapat mengurangi jumlah minimum instans saat beban turun ke nilai tertentu guna memaksimalkan pemanfaatan sumber daya. Untuk informasi lebih lanjut, lihat Batas penskalaan instans dan kebijakan elastis.
Konfigurasikan fungsi
Setelah membuat fungsi, Anda mungkin perlu menyesuaikan item konfigurasi berikut sesuai kebutuhan.
Konfigurasi dasar
Tipe instans
Function Compute menyediakan berbagai tipe instans fungsi. Anda dapat memilih spesifikasi yang berbeda sesuai kebutuhan. Untuk informasi lebih lanjut, lihat Tipe instans.
Disk sementara
Setiap instans fungsi menyediakan disk penyimpanan sementara yang dipasang ke direktori root instans tersebut. Data pada disk ini secara otomatis dihapus saat instans dikembalikan. Untuk persistensi sistem file, kami merekomendasikan agar Anda menggunakan solusi penyimpanan seperti mengonfigurasi sistem file NAS atau mengonfigurasi sistem file OSS. Hal ini memastikan data tetap tersimpan setelah restart sistem atau kegagalan, serta memudahkan pengelolaan dan penskalaan.
CatatanUntuk tipe instans GPU Function Compute full-card Function Compute, Anda dapat mengonfigurasi ukuran disk 30 GB atau 60 GB. Tipe instans lain hanya mendukung ukuran disk 512 MB atau 10 GB. Ukuran disk 512 MB tidak dikenakan biaya.
Trigger
Beberapa layanan Alibaba Cloud dapat langsung memanggil fungsi FC menggunakan pemicu. Layanan-layanan ini mendorong event ke Function Compute dan langsung memanggil fungsi saat event tertentu terjadi. Untuk informasi lebih lanjut, lihat Pengantar pemicu.
Anda dapat mengonfigurasi beberapa pemicu untuk satu fungsi. Setiap pemicu dapat bertindak sebagai klien independen untuk memanggil fungsi Anda. Setiap event yang diteruskan oleh Function Compute ke fungsi Anda hanya berisi data dari satu pemicu. Function Compute mengonversi dokumen event menjadi objek dan meneruskan objek tersebut ke penanganan fungsi.
Runtime
Function Compute mendukung berbagai bahasa melalui runtime. Runtime menyediakan lingkungan khusus bahasa yang berjalan dalam lingkungan eksekusi. Runtime meneruskan event pemanggilan, informasi konteks, dan tanggapan antara Function Compute dan fungsi. Untuk informasi lebih lanjut, lihat Pengantar runtime.
Variabel lingkungan
Variabel lingkungan disimpan sebagai pasangan kunci-nilai string sebagai bagian dari konfigurasi fungsi. Fungsi yang berbeda memiliki variabel lingkungan yang independen. Anda dapat menggunakan variabel lingkungan untuk menyesuaikan perilaku fungsi tanpa memperbarui kodenya. Untuk informasi lebih lanjut, lihat Konfigurasikan variabel lingkungan.
Layer
Layer adalah file
.zipyang dapat berisi kode tambahan atau konten lainnya. Layer biasanya berisi pustaka, runtime kustom, data, atau file konfigurasi. Function Compute menyediakan layer publik resmi yang dapat Anda gunakan dan juga mendukung pembuatan layer kustom. Penggunaan layer memberikan manfaat berikut:Mengurangi ukuran paket penyebaran.
Menempatkan semua dependensi fungsi dalam layer membantu mengurangi ukuran paket penyebaran kode fungsi dan mempercepat penyebaran kode.
Memisahkan logika inti fungsi dari dependensinya.
Layer memungkinkan Anda memperbarui dependensi fungsi tanpa memperbarui kode fungsi, dan sebaliknya. Hal ini membantu memisahkan keduanya sehingga Anda dapat fokus pada logika fungsi.
Berbagi dependensi di berbagai fungsi.
Anda dapat menempatkan fungsi umum atau dependensi dalam layer dan menambahkan layer tersebut ke sejumlah fungsi apa pun dalam akun Anda. Tanpa layer, Anda harus menyertakan dependensi yang sama dalam setiap paket penyebaran.
CatatanFungsi yang menggunakan custom image (Custom Container) tidak mendukung penambahan layer. Anda dapat mengemas runtime pilihan Anda, pustaka, dan dependensi lainnya ke dalam gambar kontainer saat membuat fungsi yang menggunakan custom image.
Izin
Anda dapat mengonfigurasi izin untuk fungsi dengan mengatur peran fungsi. Platform Function Compute menggunakan peran RAM ini untuk menghasilkan kunci sementara guna mengakses sumber daya Alibaba Cloud Anda dan meneruskannya ke kode Anda. Untuk informasi lebih lanjut, lihat Gunakan peran fungsi untuk memberikan izin akses fungsi ke layanan Alibaba Cloud lainnya.
Log
Function Compute terintegrasi dengan Simple Log Service (SLS). Setelah Anda mengonfigurasi logging untuk fungsi, Function Compute secara otomatis mengumpulkan log dan mengirimkannya ke Logstore yang ditentukan. Untuk informasi lebih lanjut, lihat Konfigurasikan fitur logging.
Jaringan
Secara default, fungsi dapat mengakses internet tetapi tidak dapat mengakses sumber daya dalam VPC. Jika Anda memerlukan fungsi untuk mengakses sumber daya dalam VPC atau mengizinkan VPC tertentu memanggil fungsi, Anda harus mengonfigurasi jaringan dan izin secara manual untuk fungsi tersebut. Untuk informasi lebih lanjut, lihat Konfigurasikan pengaturan jaringan.
Penyimpanan
Function Compute mendukung pemasangan sistem file NAS dan OSS. Untuk informasi lebih lanjut, lihat Konfigurasikan sistem file NAS dan Konfigurasikan akses OSS.
Konfigurasi asinkron
Function Compute mendukung eksekusi permintaan asinkron dalam mode tugas. Dalam mode tugas, sistem Function Compute mencatat status eksekusi setiap tugas Anda pada berbagai tahap. Fitur ini menyediakan kemampuan seperti kueri status tugas, metrik antrian tugas, deduplikasi tugas, dan penghentian tugas proaktif. Tugas asinkron cocok untuk tugas berdurasi panjang. Jika pemrosesan permintaan asinkron Anda sensitif terhadap latensi, memerlukan waktu respons kurang dari 100 milidetik, atau perlu mengirimkan ribuan atau lebih tugas per detik secara berkelanjutan, mode tugas tidak cocok. Untuk informasi lebih lanjut, lihat Pemanggilan asinkron.
Siklus hidup
Instans fungsi dibuat atau dihapus secara dinamis berdasarkan volume permintaan real-time. Siklus hidup setiap instans fungsi mencakup tiga tahap: Creating, Invoke, dan Destroy. Untuk informasi lebih lanjut, lihat Konfigurasikan instance lifecycle hook.
Pemeriksaan kesehatan
Function Compute mendukung pemeriksaan kesehatan berkala untuk instans Web function dan GPU function. Fitur ini mencegah permintaan dialokasikan ke instans abnormal, sehingga membantu mencegah kegagalan permintaan. Untuk informasi lebih lanjut, lihat Konfigurasikan pemeriksaan kesehatan untuk instans.
DNS
Fitur DNS kustom cocok untuk skenario seperti mempercepat akses situs dan hanya mendukung predefined runtime dan custom runtime. Untuk informasi lebih lanjut, lihat Konfigurasikan DNS kustom.
Nama domain kustom
Anda dapat mengikat nama domain kustom ke fungsi atau aplikasi untuk mengakses fungsi atau aplikasi tersebut melalui nama domain tetap. Anda juga dapat menggunakan nama domain kustom yang dikonfigurasi sebagai nama domain origin dan menambahkan nama domain akselerasi CDN untuknya. Konfigurasi ini memungkinkan pengguna Anda mengambil konten lebih cepat, sehingga mengurangi latensi akses dan meningkatkan kualitas layanan. Untuk informasi lebih lanjut, lihat Konfigurasikan nama domain kustom.
Panggil fungsi
Setelah menerapkan fungsi FC, Anda dapat memanggilnya dengan berbagai cara. Misalnya, Anda dapat dengan cepat membuat event uji di Function Compute untuk memanggil fungsi, menggunakan SDK untuk memanggil fungsi, memanggil API secara langsung, menggunakan titik akhir HTTP atau HTTPS URL fungsi, atau memicunya dari sumber event. Bagian berikut menjelaskan konsep terkait pemanggilan fungsi.
Panggilan sinkron
Hasil dikembalikan segera setelah fungsi memproses event. Untuk informasi lebih lanjut, lihat Pemanggilan sinkron.
Panggilan asinkron
Tanggapan dikembalikan segera setelah event berhasil dipicu, tanpa menunggu tugas latar belakang selesai. Sistem Function Compute memproses pesan secara andal tetapi tidak mengembalikan detail pemanggilan spesifik atau status eksekusi fungsi. Jika Anda ingin mendapatkan hasil panggilan asinkron, Anda harus mengonfigurasi tujuan pemanggilan asinkron. Untuk informasi lebih lanjut, lihat Ikhtisar fitur.
Analisis pemanggilan
Fitur analisis pemanggilan menyediakan ringkasan status eksekusi pada tingkat permintaan. Setelah Anda mengaktifkan fitur ini, sistem mengumpulkan informasi metrik untuk setiap eksekusi fungsi. Untuk informasi lebih lanjut, lihat Log metrik tingkat permintaan.
Jumlah maksimum instans
Parameter ini menentukan jumlah maksimum instans untuk fungsi saat ini. Jumlah maksimum instans default untuk Akun Alibaba Cloud dalam satu wilayah adalah 100. Nilai aktual mengikuti kuota yang ditampilkan di Quota Center. Untuk menambah batas ini, buka Quota Center untuk mengajukan permohonan.
Konkurensi per instans
Konkurensi per instans mengacu pada jumlah permintaan yang dapat diproses secara bersamaan oleh satu instans fungsi. Saat membuat fungsi menggunakan custom runtime atau gambar kontainer, Anda dapat mengonfigurasi beberapa permintaan konkuren per instans untuk mengurangi waktu eksekusi dan menurunkan jumlah total instans, sehingga meningkatkan pemanfaatan sumber daya. Untuk informasi lebih lanjut, lihat Konfigurasikan konkurensi.
Konsep terkait lainnya
Versi
Penerbitan versi menyimpan kode dan konfigurasi saat ini sebagai versi garis dasar yang tidak dapat diubah. Garis dasar ini mencakup kode dan konfigurasi fungsi, tetapi tidak termasuk properti sumber daya seperti pemicu, konfigurasi tugas asinkron, dan kebijakan elastis. Versi mirip dengan
Gitcommit.Commitberisi satu atau beberapa perubahan file kode dan konfigurasinya, yang merepresentasikan snapshot repositori saat ini. Untuk informasi lebih lanjut, lihat Manajemen versi.Alias
Alias adalah penunjuk ke versi fungsi tertentu. Saat Anda menggunakan alias untuk mengakses fungsi, Function Compute menyelesaikan alias tersebut ke versi yang ditunjuknya. Pemanggil tidak perlu mengetahui versi spesifik yang ditunjuk oleh alias. Anda dapat menggunakan alias untuk dengan mudah mengimplementasikan fitur seperti penerbitan, rollback, dan rilis canary. Alias mirip dengan
Gittag. Anda dapat menandaicommitsaat ini dengantag, lalureleaseuntuk menandai iterasi bisnis. Untuk informasi lebih lanjut, lihat Manajemen alias.Tag
Anda dapat menggunakan tag untuk mengkategorikan sumber daya layanan guna mempermudah pencarian dan agregasi sumber daya. Anda juga dapat menggunakan fitur tag untuk mengelompokkan layanan, sehingga memungkinkan pemberian izin operasional berbeda kepada peran berbeda untuk kelompok layanan yang berbeda. Untuk informasi lebih lanjut, lihat Konfigurasikan tag.