全部产品
Search
文档中心

Function Compute:Gambar kustom (Kontainer Kustom)

更新时间:Nov 11, 2025

Topik ini menjelaskan latar belakang, prinsip dasar, batasan, serta persyaratan konfigurasi HTTP Server untuk gambar kustom.

Informasi latar belakang

Di era cloud-native, gambar kontainer telah menjadi standar dalam pengembangan dan penerapan perangkat lunak. Untuk mengoptimalkan pengalaman pengembang serta meningkatkan efisiensi pengembangan dan pengiriman, Function Compute menyediakan dukungan untuk gambar kustom, yang memungkinkan pengembang menggunakan gambar kontainer sebagai artefak fungsi. Penggunaan gambar kustom memberikan manfaat berikut:

  • Migrasi berbiaya rendah tanpa modifikasi kode atau kompilasi ulang file biner. Anda dapat berbagi file objek (*.so) untuk menjaga konsistensi antara lingkungan pengembangan dan produksi.

  • Distribusi dan penerapan yang lebih sederhana dengan mengemas kode beserta dependensinya secara bersamaan.

  • Efisiensi unggah dan tarik kode yang lebih tinggi melalui caching berlapis.

  • Pemanfaatan pengalaman integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) dari ekosistem open-source, yang menyediakan metode standar dan dapat digunakan kembali untuk mereferensikan, berbagi, membangun, mengunggah, menyimpan, serta mengelola versi pustaka pihak ketiga dan kode.

  • Interaksi dengan sistem Function Compute melalui protokol HTTP.

  • Kemampuan menjalankan gambar non-interaktif.

Cara kerja

Sebelum sistem Function Compute menginisialisasi instans lingkungan eksekusi, sistem tersebut mengasumsikan peran layanan fungsi, lalu memperoleh nama pengguna sementara dan kata sandi untuk menarik gambar. Setelah gambar ditarik, gambar tersebut dijalankan menggunakan perintah startup (Command) dan argumen (Args) yang ditentukan.

Gambar kontainer harus mencakup server HTTP. Function Compute mendengarkan server HTTP kustom Anda pada port `CAPort` yang dikonfigurasi. Server ini menangani semua permintaan ke Function Compute, termasuk panggilan API dan permintaan HTTP. Sebelum mengembangkan logika interaksi untuk suatu fungsi, Anda harus menentukan apakah fungsi tersebut akan dipanggil melalui panggilan API atau permintaan HTTP. Prinsip-prinsipnya adalah sebagai berikut:

  • Memanggil fungsi melalui panggilan APIbuhuo1containercustom1

  • Memanggil fungsi melalui permintaan HTTPnuhuo2customcintainer2

Batasan

Batasan ukuran gambar

Untuk ACR Edisi Personal atau Edisi Perusahaan (Basic, Standard, atau Premium), ukuran maksimum gambar yang tidak terkompresi adalah 10 GB untuk instans CPU dan 15 GB untuk instans yang dipercepat GPU.

Repositori Gambar

Function Compute mendukung penarikan gambar dari repositori Container Registry Edisi Perusahaan dan Edisi Personal.

Catatan

Instans ACR Edisi Economy tidak mendukung akselerasi gambar. Oleh karena itu, Function Compute tidak mendukung repositori gambar dalam instans ACR Edisi Economy. Untuk membuat atau memperbarui fungsi, Anda harus menggunakan gambar dari instans ACR Edisi Personal atau Edisi Perusahaan (Basic, Standard, atau Premium).

Akses Gambar

Saat ini, hanya gambar publik dalam ACR Edisi Personal yang dapat diakses oleh akun lain dalam wilayah yang sama. Gambar lain hanya dapat diakses dari repositori gambar privat dalam akun dan wilayah yang sama.

Izin baca dan tulis file dalam kontainer

Secara default, kontainer dijalankan sebagai pengguna root (UID=0). Jika Anda menentukan pengguna dalam Dockerfile, gambar kontainer dijalankan sebagai pengguna tersebut.

Batas penyimpanan lapisan yang dapat ditulis untuk kontainer

Lapisan yang dapat ditulis pada kontainer dibatasi hingga 512 MB atau 10 GB, sesuai dengan ukuran disk yang ditentukan dalam Konfigurasi Lanjutan fungsi. Untuk informasi selengkapnya, lihat Membuat fungsi.

Catatan

Data dalam lapisan yang dapat ditulis pada kontainer bersifat tidak persisten dan akan dihapus saat kontainer dihapus. Untuk penyimpanan persisten, Anda dapat memasang sistem file NAS atau Bucket OSS di Function Compute. Untuk informasi selengkapnya, lihat Mengonfigurasi sistem file NAS dan Mengonfigurasi Object Storage Service. Anda juga dapat menggunakan layanan penyimpanan bersama lainnya, seperti Tablestore.

Batasan arsitektur gambar

Saat ini, Function Compute hanya mendukung arsitektur gambar AMD64. Oleh karena itu, jika Anda membangun gambar pada Mac dengan chip Apple atau mesin lain berarsitektur ARM, Anda harus menentukan platform build sebagai `linux/amd64`. Contoh perintahnya adalah docker build --platform linux/amd64 -t $IMAGE_NAME ..

Catatan

Setelah proses build selesai, Anda dapat menjalankan docker inspect untuk memeriksa arsitektur. Jika keluarannya berisi "Architecture" : "amd64", berarti gambar telah dibangun dengan benar.

Persyaratan konfigurasi HTTP Server

Persyaratan berikut hanya berlaku untuk fungsi gambar kustom yang menggunakan server web:

  • Layanan yang dimulai oleh gambar kustom harus mendengarkan pada 0.0.0.0:CAPort atau *:CAPort. Jika layanan mendengarkan pada 127.0.0.1:CAPort, permintaan akan timeout dan terjadi kesalahan berikut:

    {
        "ErrorCode":"FunctionNotStarted",
        "ErrorMessage":"TheCA'shttpservercannotbestarted:ContainerStartDuration:25000000000.PingCAfaileddueto:dialtcp21.0.XX.XX:9000:getsockopt:connectionrefusedLogs:2019-11-29T09:53:30.859837462ZListeningonport9000"
    }

    Port pendengar untuk gambar kustom ditentukan oleh properti fungsi `CAPort`, yang secara default bernilai 9000. Server HTTP dalam gambar kustom Anda harus mendengarkan pada port yang ditentukan oleh `CAPort`. Misalnya, jika `CAPort` diatur ke 8080, server HTTP Anda juga harus mendengarkan pada port 8080.

  • Server harus mendukung `Connection: Keep-Alive` dan periode timeout permintaan di sisi server harus diatur minimal 15 menit. Contoh berikut menunjukkan cara mengonfigurasi timeout:

    // Misalnya, saat menggunakan Express di Node.js.  
    var server = app.listen(PORT, HOST);
    server.timeout = 0; // tidak pernah timeout
    server.keepAliveTimeout = 0; // keepalive, tidak pernah timeout
  • Server HTTP harus mulai berjalan dalam waktu 120 detik.

Header Permintaan Umum

Header permintaan umum untuk gambar kustom sama dengan header untuk runtime kustom. Untuk informasi selengkapnya, lihat Header permintaan umum di Function Compute.

Format log

Semua log yang dicetak ke standard output (stdout) dalam gambar kustom secara otomatis dikumpulkan oleh proyek Simple Log Service yang Anda tentukan. Untuk informasi lebih lanjut tentang cara mengonfigurasi fitur logging, lihat Mengonfigurasi fitur logging.

Format log untuk gambar kustom sama dengan format untuk runtime kustom. Untuk informasi selengkapnya, lihat Format log fungsi.

Praktik Terbaik untuk Optimasi Cold Start

Dibandingkan dengan paket kode, gambar kontainer memerlukan waktu tambahan untuk mengunduh dan mendekompresi lingkungan dasar. Untuk pengalaman cold start yang lebih baik, ikuti praktik terbaik berikut:

  • Gunakan alamat gambar VPC yang berada dalam wilayah yang sama dengan Function Compute untuk mengurangi latensi penarikan gambar dan meningkatkan stabilitas.

  • Minimalkan ukuran gambar. Bangun gambar kustom Anda berdasarkan gambar minimal, seperti Alpine atau Ubuntu, atau versi ringkas dari gambar lain. Simpan hanya dependensi yang diperlukan dan hapus dokumen, data, serta file lain yang tidak perlu.

  • Gunakan gambar kontainer dengan instans yang disediakan. Untuk informasi selengkapnya, lihat Mengonfigurasi kebijakan elastisitas jumlah instans minimum.

  • Jika sumber daya Anda memungkinkan dan fungsi bersifat thread-safe, gunakan fitur konkurensi multipel instans tunggal. Hal ini menghindari cold start yang tidak perlu dan mengurangi biaya. Untuk informasi selengkapnya, lihat Membuat fungsi web.

Penagihan

Item yang dapat ditagih untuk gambar kustom sama dengan item untuk runtime lainnya. Untuk informasi selengkapnya, lihat Ikhtisar penagihan.

Untuk penggunaan sumber daya gambar, waktu eksekusi dihitung dari awal hingga akhir proses penarikan gambar dari repositori. Misalnya, jika diperlukan waktu 10 detik bagi instans dengan memori 1.024 MB untuk menarik gambar, penggunaan sumber daya untuk penarikan ini adalah 10 GB-detik.

Gambar kontainer di-cache selama periode tertentu. Oleh karena itu, biaya penarikan gambar tidak dikenakan untuk setiap cold start.

Referensi