全部产品
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 dari runtime kustom dan persyaratan untuk konfigurasi server HTTP.

Prinsip

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 9000. Jika Anda menggunakan port lain, seperti 8080, Anda dapat mengatur port mendengarkan di konfigurasi fungsi menjadi 8080.

Sebagai contoh, nama paket kode suatu fungsi adalah 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 secara default dari /code/bootstrap.

Persyaratan pada 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, permintaan akan habis waktu tunggunya, dan kesalahan berikut dikembalikan:

    {
    "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 9000. Jika runtime kustom menggunakan port mendengarkan default, port mendengarkan server HTTP-nya haruslah 9000. Jika port mendengarkan runtime kustom adalah 8080, port mendengarkan server HTTP-nya haruslah 8080.

  • Anda harus mengaktifkan mode keep-alive untuk koneksi dan mengatur periode waktu tunggu permintaan menjadi 24 jam (periode maksimum fungsi berjalan) atau lebih lama. Contoh kode:

    // Dalam contoh ini, kerangka 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.