全部产品
Search
文档中心

Function Compute:Prinsip

更新时间:Jun 24, 2025

Untuk runtime kustom, file kode dalam format ZIP merupakan program server HTTP. Topik ini menjelaskan prinsip dasar cold start pada runtime kustom serta persyaratan untuk konfigurasi server HTTP.

Ikhtisar

Untuk runtime kustom, file kode dalam format ZIP adalah program server HTTP. Anda hanya perlu mengonfigurasi parameter Startup Command dan Startup Parameter untuk memulai server HTTP. Saat Function Compute melakukan cold start pada runtime kustom, parameter Startup Command dan Startup Parameter digunakan untuk memulai server HTTP kustom Anda. Server HTTP menangani semua permintaan dari Function Compute. Port default server HTTP adalah port 9000. Jika Anda menggunakan port lain, seperti port 8080, Anda dapat menyetel port mendengarkan di konfigurasi fungsi ke port 8080.

Sebagai contoh, paket kode fungsi bernama function.zip. Contoh berikut menunjukkan file yang terkandung dalam paket serta parameter Startup Command dan Startup Parameter berdasarkan bahasa pemrograman yang digunakan untuk mengembangkan fungsi tersebut.

Java 8 atau Spring Boot

.
├── demo.jar


customRuntimeConfig:
 command:
 - java 
 args:
 - '-jar'
 - 'demo.jar'	

Python 3.7

.
├── server.py


customRuntimeConfig:
 command:
 - python
 args:
 - 'server.py'

Node.js 10

.
├── server.js


customRuntimeConfig:
 command:
 - node
 args:
 - 'server.js'

PHP 7.4

.
├── server.php


customRuntimeConfig:
 command:
 - php
 args:
 - 'server.php'
null

customRuntimeConfig menentukan perintah startup kustom untuk fungsi. command menentukan perintah startup untuk kontainer. args menentukan parameter startup. Function Compute menggabungkan isi dari command dan args untuk membentuk perintah startup lengkap. Jika perintah startup dan parameter startup tidak dikonfigurasi, server HTTP dimulai dari /code/bootstrap secara default.

Persyaratan untuk konfigurasi server HTTP

Saat membuat server HTTP, pastikan persyaratan berikut terpenuhi:

  • Layanan yang dimulai dalam runtime kustom harus mendengarkan pada 0.0.0.0:CAPort atau *:CAPort. Jika Anda menggunakan port 127.0.0.1:CAPort, kesalahan timeout akan terjadi dengan pesan berikut:

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

    Port mendengarkan default untuk runtime kustom adalah port 9000. Jika runtime kustom menggunakan port mendengarkan default, port mendengarkan server HTTP-nya haruslah port 9000. Jika port mendengarkan runtime kustom adalah port 8080, port mendengarkan server HTTP-nya haruslah port 8080.

  • Anda harus mengaktifkan mode keep-alive untuk koneksi dan menyetel periode timeout permintaan menjadi 24 jam (periode maksimum waktu berjalan fungsi) atau lebih lama. Kode berikut menunjukkan sebuah contoh:

    // Dalam contoh ini, kerangka kerja Express untuk Node.js digunakan.   
    
    var server = app.listen(PORT, HOST);
    server.timeout = 0; // tidak pernah timeout
    server.keepAliveTimeout = 0; // keepalive, tidak pernah timeout
  • Server HTTP harus dimulai dalam waktu 120 detik.