Topik ini menjelaskan konsep inti yang terlibat dalam setiap fase pembuatan fungsi, membantu Anda memahami dasar-dasar Function Compute. Untuk informasi lebih lanjut tentang langkah-langkah membuat fungsi, lihat Gunakan fungsi event untuk memproses event dari layanan Alibaba Cloud.
Fungsi Function Compute
Fungsi adalah unit dasar yang digunakan oleh Function Compute untuk menjadwalkan dan menjalankan sumber daya. Fungsi terdiri dari kode fungsi dan konfigurasi. Gambar berikut menggambarkan konsep utama terkait fungsi Function Compute.
Pembuatan fungsi
Selama fase pembuatan fungsi, Anda dapat memilih tipe fungsi dan runtime yang sesuai dengan kebutuhan bisnis Anda, serta mengunggah kode fungsi ke Function Compute. Parameter lainnya dapat dikonfigurasi nanti pada fase konfigurasi fungsi sesuai kebutuhan.
Pemilihan tipe fungsi
Fungsi event
Jika Anda ingin menggunakan event tertentu untuk memicu fungsi Anda, seperti Object Storage Service (OSS), ApsaraMQ for Kafka, atau event Simple Log Service, Anda dapat membuat fungsi event. Dalam hal ini, Anda harus menulis program untuk menangani event tersebut berdasarkan antarmuka yang didefinisikan oleh Function Compute. Untuk informasi lebih lanjut, lihat Buat Fungsi Event.
Fungsi web
Jika Anda ingin menulis program berdasarkan framework populer seperti Flask, ThinkPHP, Express, dan Spring Boot, atau memigrasikan aplikasi framework yang ada ke Function Compute, Anda dapat membuat fungsi web. Untuk informasi lebih lanjut, lihat Buat Fungsi Web.
Fungsi tugas
Fungsi tugas sangat cocok untuk memproses permintaan asinkron dan menangani skenario offline yang melibatkan tugas terjadwal, pemrosesan audio dan video, atau pemrosesan data. Setelah fungsi tugas dibuat, mode tugas diaktifkan secara default, memungkinkan Anda melacak status setiap tugas dan memulai serta menghentikan tugas secara manual. Untuk informasi lebih lanjut, lihat Buat Fungsi Tugas.
Fungsi GPU
Ketika Anda perlu menerapkan proyek AI yang memerlukan instans yang dipercepat GPU untuk komputasi yang lebih cepat, kami merekomendasikan agar Anda menyiapkan fungsi GPU menggunakan gambar kontainer. Contoh proyek AI semacam itu termasuk Stable Diffusion WebUI, ComfyUI, Generasi yang Diperkaya dengan Pengambilan Data (RAG), dan proyek TensorRT. Untuk informasi lebih lanjut, lihat Buat Fungsi GPU.
Lingkungan eksekusi
Runtime bawaan
Runtime bawaan adalah lingkungan eksekusi yang telah ditentukan sebelumnya di Function Compute. Dalam runtime ini, Anda harus menulis fungsi handler sesuai dengan antarmuka yang didefinisikan oleh Function Compute. Runtime bawaan hanya mengizinkan satu instans fungsi untuk memproses satu permintaan pada satu waktu, tetapi mereka menawarkan durasi cold start terpendek. Runtime ini ideal untuk skenario di mana Anda ingin menggunakan event tertentu, seperti OSS, ApsaraMQ for Kafka, dan event Simple Log Service, untuk memicu fungsi Anda. Untuk informasi lebih lanjut, lihat Runtime Function Compute.
Event (
event)Data Event dilewatkan ke fungsi Anda sebagai dokumen JSON: Runtime mengonversi event menjadi objek dan melewatkan objek tersebut ke parameter input
eventdari fungsi. Jika event dihasilkan oleh layanan Alibaba Cloud lainnya, maka format event akan bergantung pada layanan yang menghasilkan event tersebut. Untuk informasi lebih lanjut, lihat Format Event untuk Pemicu yang Berbeda.Konteks (
context)Ketika Function Compute menjalankan fungsi, ia melewatkan objek konteks ke parameter input
contextdari fungsi. Objek ini berisi informasi tentang pemanggilan, layanan, fungsi, dan lingkungan eksekusi. Untuk informasi lebih lanjut, lihat Konteks.
Runtime kustom
Runtime kustom mendukung framework web utama seperti Flask, ThinkPHP, Express, dan Spring Boot. Anda hanya perlu menulis program berdasarkan antarmuka yang didefinisikan oleh framework ini untuk membuat aplikasi web. Dalam runtime kustom, file kode Anda dalam format ZIP adalah program server HTTP. Untuk memulai server HTTP, Anda hanya perlu mengonfigurasi parameter Startup Command dan Startup Parameter untuk fungsi Anda. Untuk informasi lebih lanjut, lihat Prinsip-prinsip.
Runtime Kontainer Kustom
Function Compute menyediakan runtime Kontainer Kustom yang memungkinkan Anda menerapkan fungsi Anda sebagai gambar kontainer. Anda dapat menggunakan gambar yang diunggah ke Container Registry atau gambar contoh. Untuk informasi lebih lanjut, lihat Buat Fungsi Kontainer Kustom.
Catatan bahwa fungsi GPU hanya dapat diterapkan dengan runtime Kontainer Kustom.
Versi
Menerbitkan versi menciptakan snapshot yang mencakup kode fungsi dan konfigurasi, tetapi tidak termasuk atribut sumber daya seperti pemicu, konfigurasi tugas asinkron, dan kebijakan instans yang disediakan. Versi mirip dengan
commitdiGit. Sebuah Gitcommitmenangkap semua perubahan yang dilakukan pada satu atau lebih file kode atau pengaturan, mewakili snapshot dari status repositori Anda pada titik waktu tertentu. Untuk informasi lebih lanjut, lihat Kelola Versi.Alias
Sebuah alias adalah penunjuk ke versi tertentu dari fungsi Anda. Ketika Anda mengakses fungsi menggunakan alias, Function Compute menguraikan alias ke versi fungsi yang ditunjuknya. Sebagai pengguna, Anda tidak perlu mengetahui versi apa yang ditunjuk oleh alias tersebut. Anda dapat menggunakan alias untuk menerbitkan versi, rollback ke versi sebelumnya, atau mengimplementasikan rilis canary. Alias mirip dengan
tagdiGit. Anda dapat menambahkantagskecommitsuntuk menandai titikrilis. Untuk informasi lebih lanjut, lihat Kelola Alias.Instans CPU
Sebagai tipe instans standar untuk Function Compute, instans CPU sangat cocok untuk skenario yang melibatkan lalu lintas burst dan memerlukan daya komputasi yang signifikan. Untuk informasi lebih lanjut, lihat Tipe Instans dan Mode Penggunaan.
Instans yang dipercepat GPU
Berdasarkan arsitektur Turing, instans yang dipercepat GPU menggunakan perangkat keras GPU untuk memproses beban kerja lebih efisien. Instans ini sangat cocok untuk skenario yang melibatkan pemrosesan audio dan video, beban kerja AI, dan pemrosesan gambar. Untuk informasi lebih lanjut, lihat Tipe Instans dan Mode Penggunaan.
Konfigurasi fungsi
Setelah membuat fungsi, Anda mungkin perlu menyesuaikan item konfigurasi berikut berdasarkan kebutuhan bisnis Anda.
Konfigurasi dasar
Spesifikasi
Function Compute menawarkan berbagai spesifikasi instans untuk fungsi. Anda dapat memilih spesifikasi yang paling sesuai dengan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Tipe Instans dan Mode Penggunaan.
Ukuran disk sementara
Function Compute menyediakan penyimpanan sementara untuk fungsi di direktori root. Perhatikan bahwa data di penyimpanan sementara ini secara otomatis dihapus ketika sebuah instans didaur ulang. Untuk menyimpan data Anda, kami merekomendasikan agar Anda menggunakan File Storage NAS (NAS) atau OSS. Untuk informasi lebih lanjut, lihat Konfigurasikan Sistem File NAS dan Konfigurasikan Sistem File OSS. Sistem file ini memastikan bahwa data Anda tetap tersimpan dan dapat dengan mudah diakses dan dikelola, bahkan dalam kasus restart atau kegagalan sistem.
CatatanUntuk fungsi GPU, Anda dapat mengatur ukuran disk sementara menjadi 512 MB, 10 GB, 30 GB, atau 60 GB. Untuk jenis fungsi lainnya, ukuran disk sementara bisa 512 MB atau 10 GB. Opsi 512 MB tersedia tanpa biaya.
Pemicu
Layanan Alibaba Cloud tertentu dapat langsung memanggil fungsi Function Compute menggunakan pemicu. Layanan ini mendorong event ke Function Compute, dan ketika event yang ditentukan terjadi, fungsi dipanggil segera. Untuk informasi lebih lanjut, lihat Ikhtisar Pemicu.
Sebuah fungsi dapat memiliki lebih dari satu pemicu. Setiap pemicu bertindak sebagai klien yang memanggil fungsi Anda secara independen, dan setiap event yang Function Compute lewatkan ke fungsi Anda hanya berisi data dari satu pemicu. Function Compute mengonversi dokumen event menjadi objek dan melewatkan objek tersebut ke handler fungsi Anda.
Runtime
Function Compute mendukung berbagai bahasa pemrograman melalui penggunaan runtime. Runtime adalah lingkungan spesifik bahasa tempat fungsi Anda berjalan. Ini menyampaikan informasi event, informasi konteks, dan respons antara Function Compute dan fungsi Anda. Untuk informasi lebih lanjut, lihat Ikhtisar.
Variabel lingkungan
Variabel lingkungan adalah pasangan kunci-nilai yang disimpan dalam konfigurasi fungsi. Setiap fungsi beroperasi dengan set variabel lingkungannya sendiri. Anda dapat menggunakan variabel lingkungan untuk memodifikasi perilaku fungsi Anda tanpa memperbarui kode Anda. Untuk informasi lebih lanjut, lihat Konfigurasikan Variabel Lingkungan.
Lapisan
Lapisan adalah file
.zipyang berisi kode atau data tambahan. Biasanya, mereka berisi dependensi pustaka, runtime kustom, data tambahan, atau file konfigurasi. Anda dapat menggunakan lapisan publik resmi yang disediakan oleh Function Compute dan lapisan kustom yang Anda buat. Untuk informasi lebih lanjut, lihat Contoh Penggunaan Lapisan Publik Resmi dan Buat Lapisan Kustom. Menggunakan lapisan menawarkan beberapa keuntungan:Mengurangi ukuran paket penyebaran.
Letakkan semua dependensi fungsi Anda dalam lapisan untuk menjaga ukuran paket penyebaran tetap kecil, yang mempercepat penyebaran kode.
Memisahkan logika fungsi inti dari dependensi.
Dengan lapisan, Anda dapat memperbarui dependensi fungsi tanpa memodifikasi kode fungsi Anda dan, sebaliknya, memperbarui kode fungsi Anda tanpa mengubah dependensi. Ini membantu Anda fokus pada logika fungsi dengan memisahkan masalah.
Berbagi dependensi di beberapa fungsi.
Anda dapat meletakkan fungsi atau dependensi publik dalam lapisan dan menerapkan lapisan tersebut ke sejumlah fungsi di akun Anda. Tanpa lapisan, Anda harus menyertakan dependensi yang sama dalam setiap paket penyebaran individu.
CatatanAnda tidak dapat menggunakan lapisan dengan fungsi yang berjalan dalam runtime Kontainer Kustom. Untuk fungsi-fungsi ini, gabungkan mereka bersama dengan runtime yang diperlukan dan semua dependensi kode dalam gambar kontainer. Untuk informasi lebih lanjut, lihat Runtime Kontainer Kustom dan Buat Fungsi Kontainer Kustom.
Izin
Untuk memberikan izin kepada fungsi Anda untuk mengakses layanan Alibaba Cloud lainnya, Anda tentukan peran Resource Access Management (RAM) untuk fungsi tersebut. Ketika fungsi dipanggil, Function Compute mengasumsikan peran ini dan menghasilkan sepasang AccessKey sementara yang digunakan untuk mengakses sumber daya Alibaba Cloud Anda sebelum melewatkan ke kode fungsi Anda. Untuk informasi lebih lanjut, lihat Berikan Izin Function Compute untuk Mengakses Layanan Alibaba Cloud Lainnya.
Pencatatan
Simple Log Service (SLS) dapat diintegrasikan dengan Function Compute. Setelah Anda mengonfigurasi fitur pencatatan untuk fungsi Anda, Function Compute secara otomatis mengumpulkan log fungsi dan mengirimkannya ke Logstore yang ditentukan di Simple Log Service. Untuk informasi lebih lanjut, lihat Konfigurasikan Fitur Pencatatan.
Jaringan
Secara default, fungsi yang Anda buat di Function Compute dapat mengakses Internet tetapi tidak dapat mengakses sumber daya dalam virtual private cloud (VPC). Jika Anda ingin fungsi Anda mengakses sumber daya dalam VPC atau mengizinkan permintaan dari VPC untuk memanggil fungsi Anda, Anda harus mengonfigurasi pengaturan jaringan dan izin untuk fungsi tersebut secara manual. Untuk informasi lebih lanjut, lihat Konfigurasikan Pengaturan Jaringan.
Penyimpanan
Anda dapat mengonfigurasi File Storage NAS (NAS) atau sistem file OSS untuk menyimpan dan berbagi data fungsi Anda. Untuk informasi lebih lanjut, lihat Konfigurasikan Sistem File NAS dan Konfigurasikan Sistem File OSS.
Instans yang disediakan
Anda dapat mengonfigurasi instans yang disediakan di konsol Function Compute. Setelah dikonfigurasi, instans yang disediakan tetap aktif dan terus menghasilkan biaya, bahkan jika tidak ada permintaan yang sedang diproses, sampai Anda memilih untuk melepaskannya. Untuk informasi lebih lanjut, lihat Konfigurasikan Instans yang Disediakan.
Konfigurasi mode asinkron
Function Compute dapat mengeksekusi permintaan asinkron dalam mode tugas. Dalam mode tugas, Function Compute mencatat status eksekusi setiap tugas di setiap tahap, dan menyediakan fitur seperti kueri status tugas, kueri status antrian tugas, deduplikasi tugas, dan terminasi tugas aktif. Tugas asinkron ideal untuk operasi jangka panjang. Di sisi lain, jika permintaan asinkron Anda sensitif terhadap latensi dan memerlukan waktu respons kurang dari 100 milidetik, atau jika Anda membutuhkan tingkat pengiriman tugas tinggi yang mungkin mencapai 1.000 tugas per detik atau lebih, maka tugas asinkron mungkin bukan pilihan terbaik. Untuk informasi lebih lanjut, lihat Pemanggilan Asinkron.
Siklus hidup instans
Instans fungsi dibuat dan dihapus secara dinamis berdasarkan permintaan masuk. Siklus hidup setiap instans terdiri dari tiga fase: Pembuatan, Pemanggilan, dan Penghapusan. Untuk informasi lebih lanjut, lihat Konfigurasikan Siklus Hidup Instans.
Pemeriksaan kesehatan
Anda dapat menggunakan fitur pemeriksaan kesehatan Function Compute untuk secara berkala menilai kesehatan instans fungsi web dan GPU. Ini membantu mencegah pemanggilan gagal yang disebabkan oleh instans abnormal. Untuk informasi lebih lanjut, lihat Konfigurasikan Kebijakan Pemeriksaan Kesehatan untuk Instans Fungsi.
DNS
Anda dapat mengonfigurasi Domain Name System (DNS) kustom untuk mengimplementasikan fitur tertentu, seperti akselerasi akses. DNS kustom hanya didukung dalam runtime bawaan dan kustom Function Compute. Untuk informasi lebih lanjut, lihat Konfigurasikan DNS Kustom.
Nama domain kustom
Anda dapat mengikat nama domain kustom ke aplikasi atau fungsi Anda. Ini memungkinkan pengguna mengakses aplikasi atau fungsi Anda melalui nama domain tetap. Anda juga dapat mengonfigurasi nama domain kustom sebagai domain asal dan menambahkan nama domain yang dipercepat CDN ke dalamnya. Ini memungkinkan pengguna mengakses sumber daya lebih cepat, sehingga meningkatkan pengalaman layanan mereka. Untuk informasi lebih lanjut, lihat Konfigurasikan Nama Domain Kustom.
Pemanggilan fungsi
Setelah Anda menerapkan fungsi Function Compute, Anda dapat memanggilnya dengan beberapa cara. Misalnya, Anda dapat menggunakan konsol Function Compute untuk dengan cepat membuat event tes untuk memanggil fungsi Anda. Sebagai alternatif, Anda dapat memanggil fungsi Anda dengan menggunakan salah satu SDK, memanggil operasi API, mengakses titik akhir HTTP(S) khusus untuk fungsi Anda, atau melalui pemicu. Berikut adalah beberapa konsep utama terkait pemanggilan fungsi.
Pemanggilan sinkron
Ketika Anda memanggil fungsi secara sinkron, Anda harus menunggu hingga selesai memproses event sepenuhnya dan mengembalikan respons sebelum melanjutkan. Untuk informasi lebih lanjut, lihat Pemanggilan Sinkron.
Pemanggilan asinkron
Ketika Anda memanggil fungsi secara asinkron, Function Compute segera mengembalikan respons sukses dan menempatkan event dalam antrian untuk pemrosesan yang andal. Setelah fungsi memproses event, Function Compute tidak memberikan detail pemanggilan atau status eksekusi. Jika Anda ingin mendapatkan informasi tersebut, Anda harus mengonfigurasi tujuan pemanggilan asinkron untuk fungsi Anda. Untuk informasi lebih lanjut, lihat Ikhtisar.
Analisis pemanggilan
Fitur analisis pemanggilan membantu Anda melacak pemanggilan dan eksekusi fungsi. Setelah Anda mengaktifkan fitur ini, sistem mengumpulkan metrik tentang setiap pemanggilan fungsi. Untuk informasi lebih lanjut, lihat Log Metrik Tingkat Permintaan.
Konkurensi instans
Konkurensi instans menentukan jumlah maksimum permintaan yang dapat diproses oleh instans fungsi pada satu waktu. Untuk informasi lebih lanjut, lihat Konfigurasikan Konkurensi Instans.
Mode idle
Anda dapat mengaktifkan mode idle untuk instans yang disediakan. Dalam mode ini, sumber daya GPU atau vCPU yang dialokasikan ke instans dibekukan ketika tidak ada permintaan yang sedang diproses, menempatkan instans dalam keadaan idle. Penggunaan sumber daya idle dikenakan biaya dengan tarif yang jauh lebih rendah daripada penggunaan aktif, secara signifikan mengurangi biaya instans yang disediakan.
Mode on-demand
Dalam mode on-demand, Function Compute secara otomatis mengalokasikan dan melepaskan instans fungsi berdasarkan permintaan masuk. Untuk informasi lebih lanjut, lihat Tipe Instans dan Mode Penggunaan.
Mode disediakan
Dalam mode disediakan, Anda mengalokasikan dan melepaskan instans untuk fungsi Anda. Function Compute secara prioritas meneruskan permintaan masuk ke instans yang disediakan. Jika jumlah instans yang disediakan tidak cukup untuk menangani semua permintaan masuk, permintaan tambahan akan ditangani oleh instans on-demand yang dialokasikan secara dinamis. Untuk informasi lebih lanjut, lihat Tipe Instans dan Mode Penggunaan.
Instans yang disediakan membantu mengurangi cold start, karena mereka selalu siap untuk merespons segera terhadap permintaan masuk.
Jika Anda membuat sejumlah tetap instans yang disediakan, mereka mungkin tidak dimanfaatkan sepenuhnya. Untuk meningkatkan pemanfaatan sumber daya, Anda dapat mengaktifkan penyesuaian otomatis berbasis jadwal atau metrik untuk instans yang disediakan tersebut.
Penyesuaian otomatis berbasis jadwal
Penyesuaian otomatis berbasis jadwal memungkinkan Anda menyiapkan tindakan yang menyesuaikan jumlah instans yang disediakan ke level yang direncanakan pada waktu tertentu. Untuk informasi lebih lanjut, lihat Konfigurasikan Instans yang Disediakan.
Penyesuaian otomatis berbasis metrik
Penyesuaian otomatis berbasis metrik secara dinamis menyesuaikan jumlah instans yang disediakan sebagai respons terhadap nilai metrik pelacakan yang ditentukan. Untuk informasi lebih lanjut, lihat Konfigurasikan Instans yang Disediakan.
Jumlah maksimum total instans
Ada jumlah maksimum instans yang dapat Anda buat untuk fungsi Anda. Batas defaultnya adalah 300 instans per wilayah per akun Alibaba Cloud. Jika Anda perlu menyesuaikan batas ini, bergabunglah dengan grup DingTalk kami (ID grup:
64970014484) untuk mengajukan aplikasi.
Konsep-konsep terkait lainnya
Tag
Tag digunakan untuk mengklasifikasikan sumber daya layanan, memudahkan pencarian dan agregasi sumber daya. Anda juga dapat menggunakan tag untuk mengelompokkan layanan dan menetapkan izin yang berbeda pada kelompok layanan tersebut kepada peran yang berbeda. Untuk informasi lebih lanjut, lihat Kelola Tag.