All Products
Search
Document Center

Function Compute:Konfigurasikan pemeriksaan kesehatan instans

Last Updated:Apr 01, 2026

Function Compute secara berkala mengirim permintaan HTTP GET ke instans fungsi Anda untuk mendeteksi instans yang tidak sehat sebelum menyebabkan kegagalan pemanggilan. Jika suatu instans gagal dalam pemeriksaan kesehatan, Function Compute secara otomatis mengarahkan permintaan ke instans yang sehat.

Pemeriksaan kesehatan hanya berlaku untuk instans web function yang berjalan di runtime kustom atau runtime Custom Container. Jika pemeriksaan kesehatan tidak diaktifkan, Function Compute tidak melakukan deteksi instans secara berkala.

Cara kerja pemeriksaan kesehatan

Startup

Saat instans fungsi dimulai:

  1. Jika fungsi menentukan hook Initializer, Function Compute menjalankannya terlebih dahulu. Jika tidak, pemeriksaan kesehatan pertama dijalankan segera.

  2. Jika instans lulus pemeriksaan kesehatan pertama, instans tersebut memasuki siklus pemeriksaan kesehatan berkala.

  3. Jika instans gagal dalam pemeriksaan kesehatan pertama, Function Compute melaporkan kegagalan startup dan menghentikan proses pemeriksaan kesehatan.

Pemeriksaan kesehatan berkala

Setelah startup, Function Compute mengirim permintaan HTTP GET ke path yang Anda konfigurasikan sesuai interval yang ditentukan. Setiap permintaan harus mengembalikan kode status HTTP dalam rentang [200, 400) sebelum timeout berakhir agar dianggap berhasil.

  • Jika jumlah kegagalan berturut-turut mencapai Maximum Failures, instans tersebut ditandai sebagai tidak sehat dan Function Compute mengarahkan permintaan ke instans lain.

  • Begitu instans yang tidak sehat mengumpulkan jumlah keberhasilan berturut-turut sebanyak Threshold for Successful Detections, instans tersebut dianggap sehat kembali.

Alokasi instans setelah kegagalan

Ketika instans fungsi ditandai sebagai tidak sehat:

  • Jika Function Compute berhasil mengalokasikan instans lain, permintaan akan ditangani oleh instans baru tersebut.

  • Jika alokasi tidak selesai tepat waktu, kesalahan pemeriksaan kesehatan dikembalikan. Instans baru dialokasikan pada siklus pemeriksaan kesehatan berikutnya.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Membuat web function di Function Compute menggunakan runtime kustom atau runtime Custom Container

  • Server HTTP fungsi mendengarkan permintaan GET di path pemeriksaan kesehatan yang akan Anda konfigurasikan

Konfigurasikan kebijakan pemeriksaan kesehatan

Langkah-langkah berikut menggunakan contoh web function Node.js 18.

Langkah 1: Buat web function dengan endpoint pemeriksaan kesehatan

  1. Masuk ke Konsol Function Compute. Di panel navigasi kiri, klik Functions.

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

  3. Pada halaman Create Function, pilih Web Function, konfigurasikan parameter sesuai tabel berikut, lalu klik Create.

    ParameterDeskripsi
    Function NameMasukkan nama untuk fungsi.
    RuntimePilih Node.js 18.
  4. Pada halaman detail fungsi, klik tab Code. Ganti kode default dengan kode berikut, lalu klik Deploy Code dan Test Function.

    'use strict';
    
    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());
    
    // Endpoint pemeriksaan kesehatan — Function Compute mengirim GET /readyz pada interval yang dikonfigurasi.
    // Tambahkan pemeriksaan di sini untuk dependensi Anda (konektivitas database, file yang diperlukan, dll.)
    // agar secara akurat mencerminkan apakah instans ini dapat melayani traffic.
    app.get('/readyz', (req, res) => {
      console.log(`receive health check`);
      res.status(200);
      console.log(`i am ready`);
      res.send('i am ready\n');
    });
    
    // Endpoint pemanggilan fungsi
    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

    Jika fungsi berjalan berhasil, OK dikembalikan.

Langkah 2: Aktifkan pemeriksaan kesehatan

  1. Pada halaman detail fungsi, klik tab Configurations.

  2. Di panel navigasi kiri, klik Health Check, lalu klik Modify.

  3. Atur Health Check ke Enable, konfigurasikan parameter sesuai tabel berikut, lalu klik OK.

    ParameterDeskripsi
    Request PathPath HTTP GET untuk pemeriksaan kesehatan. Harus diawali dengan /. Untuk contoh ini, atur nilai ini menjadi /readyz.
    Delay for First DetectionLama waktu tunggu setelah startup instans sebelum pemeriksaan kesehatan pertama dijalankan. Atur nilai ini cukup tinggi agar fungsi Anda sempat melakukan inisialisasi penuh.
    Detection IntervalFrekuensi Function Compute mengirim permintaan pemeriksaan kesehatan.
    Timeout PeriodLama waktu Function Compute menunggu respons sebelum menganggap permintaan gagal.
    Maximum FailuresJumlah kegagalan pemeriksaan kesehatan berturut-turut yang menyebabkan instans ditandai sebagai tidak sehat.
    Threshold for Successful DetectionsJumlah keberhasilan pemeriksaan kesehatan berturut-turut yang diperlukan untuk mengembalikan status instans tidak sehat menjadi sehat.

Langkah 3: Verifikasi pemeriksaan kesehatan

  1. Pada halaman detail fungsi, klik tab Code, lalu klik Test Function. Jika fungsi dalam kondisi sehat, OK dikembalikan.

  2. Untuk menguji kondisi tidak sehat, ganti penanganan /readyz dengan kode berikut, klik Deploy Code, lalu klik Test Function.

    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 mengembalikan kode status 500. Setelah jumlah kegagalan berturut-turut mencapai Maximum Failures, Function Compute menandai instans sebagai tidak sehat dan mengembalikan kesalahan berikut:

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

Langkah selanjutnya

Untuk mengonfigurasi pemeriksaan kesehatan secara terprogram, gunakan operasi API UpdateFunction.