All Products
Search
Document Center

Function Compute:Konfigurasi pemeriksaan kesehatan instans

Last Updated:Apr 24, 2026

Topik ini mencakup latar belakang, batasan, dan perilaku pemeriksaan kesehatan instans fungsi, serta cara mengonfigurasinya di Konsol Function Compute.

Latar belakang

Fungsi yang menggunakan runtime kustom atau gambar kontainer kustom terkadang menjadi tidak stabil sehingga menyebabkan instans fungsi berperilaku tidak normal. Untuk mengatasi hal ini, Anda dapat mengonfigurasi pemeriksaan kesehatan berkala di Function Compute. Konfigurasi ini mencegah permintaan dialihkan ke instans yang tidak sehat, sehingga menghindari kegagalan permintaan.

Batasan

Pemeriksaan kesehatan hanya didukung untuk Web Function dan fungsi GPU.

Cara kerja pemeriksaan kesehatan

Perilaku startup instans

Jika Anda mengonfigurasi pemeriksaan kesehatan untuk suatu fungsi, instans akan menjalankan proses startup sebagai berikut.

  1. Jika fungsi memiliki hook initializer, hook tersebut dijalankan terlebih dahulu. Jika tidak, platform langsung melakukan pemeriksaan kesehatan awal.

  2. Jika pemeriksaan kesehatan awal berhasil, instans ditandai sebagai sehat dan memulai siklus pemeriksaan kesehatan berkala. Jika pemeriksaan gagal, instans dianggap gagal memulai, proses pemeriksaan kesehatan dihentikan, dan kesalahan dikembalikan.

    • Jika jumlah pemeriksaan kesehatan gagal berturut-turut mencapai nilai Maximum Failures yang dikonfigurasi, instans ditandai sebagai tidak sehat. Function Compute kemudian mencoba mengarahkan permintaan ke instans sehat lainnya.

    • Jika jumlah pemeriksaan kesehatan berhasil berturut-turut untuk instans yang tidak sehat mencapai nilai Threshold for Successful Detections yang dikonfigurasi, instans tersebut ditandai kembali sebagai sehat.

Untuk petunjuk cara mengatur Threshold for Successful Detections dan Maximum Failures, lihat Konfigurasi pemeriksaan kesehatan di Konsol.

Perilaku satu kali pemeriksaan kesehatan

Function Compute melakukan satu kali pemeriksaan kesehatan sebagai berikut.

  1. Mengirim permintaan GET ke path HTTP yang ditentukan berdasarkan konfigurasi fungsi.

  2. Jika permintaan GET mengembalikan kode status HTTP antara 200 hingga 399 sebelum timeout, pemeriksaan berhasil. Jika tidak, pemeriksaan gagal.

Penjadwalan setelah kegagalan pemeriksaan kesehatan

Saat instans fungsi menjadi tidak sehat, Function Compute mencoba mengarahkan permintaan ke instans lainnya.

  • Jika Function Compute berhasil mengarahkan permintaan, instans fungsi baru yang sehat akan mengeksekusinya.

  • Jika Function Compute tidak dapat mengarahkan permintaan ke instans lain tepat waktu, sistem mengembalikan kesalahan kegagalan pemeriksaan kesehatan. Pada pemanggilan berikutnya, sistem mencoba menjadwalkan permintaan langsung ke instans fungsi baru.

Konfigurasi pemeriksaan kesehatan di Konsol

Bagian ini menjelaskan cara mengonfigurasi pemeriksaan kesehatan untuk suatu fungsi. Contoh berikut menggunakan Web Function dengan Runtime Node.js 18.

Langkah 1: Buat fungsi

  1. Masuk ke Konsol Function Compute, lalu di bilah navigasi kiri, pilih Function Management > Functions.

  2. Di bilah navigasi atas, pilih wilayah. Di halaman Functions, klik Create Function.

  3. Di halaman Create Function, pilih Web Function. Untuk Custom Runtime, pilih Custom Runtime. Lalu, klik Create.

  4. Di halaman detail fungsi, pilih tab Code. Edit kode fungsi di editor kode, lalu klik Deploy.

    Berikut adalah contoh kode untuk index.js.

    'use strict';
    
    // Constants
    const PORT = 9000;
    const HOST = '0.0.0.0';
    const REQUEST_ID_HEADER = 'x-fc-request-id'
    
    const express = require('express');
    const bodyParser = require('body-parser');
    const app = express();
    
    app.use(bodyParser.urlencoded({ extended: true }));
    app.use(bodyParser.json());
    app.use(bodyParser.raw());
    
    app.get('/readyz', (req, res) => {
      console.log(`receive health check`);
      res.status(200);
      console.log(`i am ready`);
      res.send('i am ready\n');
    });
    
    // invocation
    app.post('/invoke', (req, res) => {
      var rid = req.headers[REQUEST_ID_HEADER]
      console.log(`FC Invoke Start RequestId: ${rid}`)
      res.send('OK');
      console.log(`FC Invoke End RequestId: ${rid}`)
    });
    
    var server = app.listen(PORT, HOST);
    console.log(`Running on http://${HOST}:${PORT}`);
    
    server.timeout = 0; // never timeout
    server.keepAliveTimeout = 0; // keepalive, never timeout

    Pada kode di atas, readyz adalah penanganan pemeriksaan kesehatan. Handler ini memproses permintaan HTTP GET yang dikirim ke path /readyz. Setelah Anda menyelesaikan Langkah 2: Konfigurasi pemeriksaan kesehatan untuk instans fungsi, Anda dapat mengonfigurasi Function Compute agar secara berkala menjalankan handler ini untuk memeriksa kesehatan instans.

    Saat Function Compute menentukan bahwa instans fungsi Anda tidak sehat, sistem mencoba mengarahkan permintaan ke instans sehat lainnya. Jika Function Compute gagal melakukannya, sistem mengembalikan kesalahan terkait kegagalan pemeriksaan kesehatan.

Langkah 2: Konfigurasi pemeriksaan kesehatan

  1. Masuk ke Konsol Function Compute, lalu di bilah navigasi kiri, pilih Function Management > Functions.

  2. Di bilah navigasi atas, pilih wilayah. Di halaman Functions, klik fungsi yang telah Anda buat pada langkah sebelumnya.

  3. Di halaman detail fungsi, pilih tab Configuration. Di sebelah kanan Advanced Settings, klik Modify. Di panel Advanced Settings, aktifkan sakelar Health Check, konfigurasi parameter sesuai tabel berikut, lalu klik Deploy.

    Parameter

    Deskripsi

    Request Path

    Path tempat Function Compute mengirim permintaan HTTP GET untuk melakukan pemeriksaan kesehatan. Nilainya harus diawali dengan /.

    Delay for First Detection

    Waktu tunda dalam detik setelah startup instans sebelum pemeriksaan kesehatan pertama dijalankan.

    Detection Interval

    Interval dalam detik antara pemeriksaan kesehatan.

    Timeout Period

    Waktu timeout dalam detik untuk respons pemeriksaan kesehatan. Jika respons tidak diterima dalam periode ini, pemeriksaan dianggap gagal.

    Maximum Failures

    Jumlah pemeriksaan kesehatan gagal berturut-turut sebelum instans ditandai sebagai tidak sehat.

    Threshold for Successful Detections

    Jumlah pemeriksaan kesehatan berhasil berturut-turut yang diperlukan untuk menandai kembali instans yang tidak sehat sebagai sehat.

Langkah 3: Verifikasi pemeriksaan kesehatan

  1. Di halaman konfigurasi fungsi, pilih tab Code dan klik Test Function untuk melihat hasilnya.

    Dengan kode contoh pada Langkah 1, instans fungsi lolos pemeriksaan kesehatan dan mengembalikan OK.

  2. Ganti handler pemeriksaan kesehatan dalam kode dengan cuplikan berikut. Klik Deploy. Setelah kode dideploy, klik lagi Test Function untuk melihat hasilnya.

    Kode yang dimodifikasi adalah sebagai berikut.

    app.get('/readyz', (req, res) => {
      console.log(`receive health check`);
      res.status(500);
      console.log(`i am not ready`);
      res.send('i am not ready\n');
    });

    Pemeriksaan kesehatan sekarang akan selalu gagal dengan kode status 500. Saat Anda memanggil fungsi lagi, Anda akan menerima respons berikut:

    {
        "RequestId": "1-65081d42-e4895cbc7d6252bda643****",
        "Code": "FunctionNotStarted",
        "Message": "The function http server cannot be started. check function health failed with status code: 500 "
    }

Informasi lebih lanjut

Selain melalui Konsol, Function Compute juga mendukung penggunaan API untuk mengonfigurasi pemeriksaan kesehatan instans. Untuk informasi lebih lanjut, lihat Update health check configurations.