Ya. Function Compute menggunakan CAPort (Container Application Port) untuk melakukan ping ke kontainer Anda dan memverifikasi bahwa kontainer tersebut siap menangani permintaan. HTTP server di dalam custom runtime Anda harus mendengarkan pada port yang sama dengan CAPort, atau pemeriksaan kesiapan akan gagal dengan error FunctionNotStarted.
CAPort default adalah 9000. Jika Anda mempertahankan nilai default, HTTP server Anda juga harus mendengarkan pada port 9000. Jika Anda mengubah CAPort menjadi 8080, HTTP server Anda harus mendengarkan pada port 8080.
Persyaratan Alamat Bind
Bind HTTP server Anda ke 0.0.0.0:CAPort atau *:CAPort—bukan 127.0.0.1:CAPort. Alamat loopback hanya dapat dijangkau dari dalam kontainer. Function Compute mengirim ping kesiapan dari luar kontainer, sehingga server yang dibind ke 127.0.0.1 tidak akan merespons.
Binding yang benar vs. salah (Node.js)
// Benar — dapat dijangkau dari luar kontainer
server.listen(9000, '0.0.0.0');
// Salah — menyebabkan error FunctionNotStarted
server.listen(9000, '127.0.0.1');Error FunctionNotStarted
Jika port tidak sesuai atau server dibind ke alamat loopback, Function Compute akan mengembalikan error berikut setelah timeout waktu mulai kontainer habis:
{
"ErrorCode": "FunctionNotStarted",
"ErrorMessage": "The CA's HTTP server cannot be started: ContainerStartDuration: 25000000000. Ping CA failed due to: dial tcp 21.0.5.7:9000: getsockopt: connection refused"
}Untuk mengatasi error ini, verifikasi hal berikut:
Port tempat HTTP server Anda mendengarkan sesuai dengan
CAPort.HTTP server dibind ke
0.0.0.0atau*, bukan127.0.0.1.