Topik ini menjelaskan latar belakang, batasan, dan perilaku pemeriksaan kesehatan untuk instance fungsi di Function Compute. Topik ini juga menjelaskan cara mengonfigurasi kebijakan pemeriksaan kesehatan untuk instance fungsi di Konsol Function Compute.
Latar Belakang
Web functions yang berjalan pada runtime kustom dan runtime Custom Container mungkin tidak stabil, dan pengecualian dapat terjadi saat instance fungsi bekerja. Anda dapat menggunakan fitur pemeriksaan kesehatan dari Function Compute untuk secara berkala memeriksa kesehatan instance fungsi guna mencegah kegagalan pemanggilan akibat instance yang abnormal.
Batasan
Hanya instance web function yang mendukung fitur pemeriksaan kesehatan.
Perilaku pemeriksaan kesehatan
Startup Instance
Bagian ini menjelaskan perilaku startup instance fungsi setelah Anda mengonfigurasi kebijakan pemeriksaan kesehatan untuk sebuah fungsi.
Panggilan balik Initializer dijalankan pertama kali jika fungsi tersebut mendefinisikan panggilan balik Initializer. Jika fungsi tidak mendefinisikan panggilan balik Initializer, pemeriksaan kesehatan pertama langsung dilakukan.
Instance dianggap sehat jika lolos pemeriksaan kesehatan pertama. Setelah itu, instance memasuki siklus pemeriksaan kesehatan berkala. Jika gagal dalam pemeriksaan kesehatan pertama, instance dianggap mengalami kegagalan startup dan proses pemeriksaan kesehatan dihentikan. Pesan kesalahan terkait kemudian dilaporkan.
Jika jumlah kegagalan pemeriksaan kesehatan berturut-turut mencapai nilai yang ditentukan dari parameter Maximum Failures, instance fungsi dianggap tidak sehat. Kemudian, Function Compute mengalokasikan instance lain untuk memproses permintaan.
Saat jumlah pemeriksaan kesehatan yang berhasil untuk instance yang tidak sehat mencapai nilai yang ditentukan dari parameter Threshold for Successful Detections, instance dianggap sehat.
Untuk informasi lebih lanjut tentang cara mengonfigurasi parameter Threshold for Successful Detections dan Maximum Failures, lihat Konfigurasikan Kebijakan Pemeriksaan Kesehatan di Konsol Function Compute.
Pemeriksaan kesehatan tunggal
Dalam setiap pemeriksaan kesehatan, Function Compute melakukan operasi berikut:
Mengirim permintaan GET ke jalur HTTP tertentu berdasarkan konfigurasi instance fungsi.
Jika permintaan GET tidak mengalami timeout dan kode status respons HTTP berada di antara 200 dan 399 (inklusif), instance dinyatakan lolos pemeriksaan kesehatan. Jika tidak, instance dianggap gagal dalam pemeriksaan kesehatan.
Alokasi setelah instance gagal pemeriksaan kesehatan
Jika instance fungsi tidak sehat, Function Compute akan mencoba mengalokasikan instance lain untuk mengeksekusi permintaan tersebut.
Jika Function Compute berhasil mengalokasikan instance lain, permintaan dieksekusi oleh instance tersebut.
Jika Function Compute gagal mengalokasikan instance lain dalam waktu yang tepat, kesalahan pemeriksaan kesehatan dikembalikan. Instance baru dialokasikan selama pemeriksaan kesehatan berikutnya.
Konfigurasikan kebijakan pemeriksaan kesehatan
Bagian ini menjelaskan cara mengonfigurasi kebijakan pemeriksaan kesehatan di Konsol Function Compute. Fungsi yang dibuat dengan memilih Web Function dan Runtime-nya adalah Node.js 18 digunakan sebagai contoh.
Langkah 1: Buat fungsi
Masuk ke Konsol Function Compute. Di panel navigasi kiri, klik Functions.
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik Create Function.
Pada halaman Create Function, pilih metode untuk membuat fungsi, konfigurasikan parameter berikut, lalu klik Create.
Dalam contoh ini, metode Web Function dipilih. Tabel berikut menjelaskan parameter yang harus Anda konfigurasikan. Pertahankan nilai default untuk parameter lainnya.
Parameter
Deskripsi
Function Name
Masukkan nama untuk fungsi tersebut.
Runtime
Tentukan runtime fungsi tersebut. Dalam contoh ini, Node.js 18 dipilih.
Pada halaman konfigurasi fungsi, klik tab Code. Di editor kode, edit kode fungsi tersebut. Lalu, deploy kode dan jalankan fungsi tersebut.
Contoh berikut menyediakan potongan kode sampel untuk :'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 timeoutPada kode sebelumnya,
readyzadalah handler dari kebijakan pemeriksaan kesehatan yang didefinisikan, yang digunakan untuk memproses permintaan HTTP GET di jalur /readyz. Setelah Anda menyelesaikan Langkah 2: Konfigurasikan Kebijakan Pemeriksaan Kesehatan untuk Instance Fungsi, Anda dapat menentukan untuk menjalankan handler ini secara berkala sehingga pemeriksaan kesehatan dilakukan secara rutin.Function Compute mencoba mengalokasikan instance fungsi lain ketika menentukan bahwa instance fungsi tidak normal. Jika Function Compute gagal mengalokasikan instance lain, kesalahan pemeriksaan kesehatan dikembalikan.
Langkah 2: Konfigurasikan kebijakan pemeriksaan kesehatan untuk instance fungsi
Masuk ke Konsol Function Compute. Di panel navigasi kiri, klik Functions.
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik fungsi yang ingin Anda kelola.
Pada halaman detail fungsi, klik tab Configurations.
Di panel navigasi kiri, klik tab Health Check lalu klik Modify. Pada halaman Health Check, konfigurasikan parameter berdasarkan kebutuhan bisnis Anda dan klik OK. Tabel berikut menjelaskan parameter-parameter tersebut.
Parameter
Deskripsi
Health Check
Tentukan apakah akan mengaktifkan fitur pemeriksaan kesehatan. Jika Anda memilih Enable, konfigurasikan parameter berikut:
Request Path
Jalur HTTP GET untuk pemeriksaan kesehatan. Function Compute mengirim permintaan HTTP GET ke jalur tersebut untuk pemeriksaan kesehatan. Nilainya harus dimulai dengan garis miring (/).
Delay for First Detection
Waktu tunggu sebelum pemeriksaan kesehatan pertama.
Detection Interval
Interval pengiriman permintaan HTTP GET.
Timeout Period
Periode timeout permintaan HTTP GET. Saat periode timeout berakhir, permintaan dianggap gagal.
Maximum Failures
Jumlah maksimum kegagalan permintaan HTTP GET yang diizinkan. Ketika nilai yang ditentukan tercapai selama pemeriksaan kesehatan berkala, instance fungsi dianggap gagal dalam pemeriksaan kesehatan.
Threshold for Successful Detections
Ambang batas sukses untuk permintaan HTTP GET. Ketika nilai yang ditentukan tercapai, instance fungsi dianggap telah lolos pemeriksaan kesehatan.
Langkah 3: Verifikasi konfigurasi pemeriksaan kesehatan
Pada halaman detail fungsi, klik tab Code dan klik Test Function untuk melihat apakah fungsi dapat berjalan sesuai harapan.
Jalankan kode sampel di Langkah 1. Jika OK dikembalikan, instance fungsi dianggap sehat.
Ganti bagian pemeriksaan kesehatan di kode dengan kode berikut lalu klik Deploy Code. Setelah kode dideploy, klik Test Function lagi untuk melihat hasil eksekusi fungsi tersebut.
Potongan kode berikut menunjukkan kode yang telah dimodifikasi:
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'); });Setelah Anda menjalankan kode tersebut, kode kesalahan 500 dikembalikan dalam hasil pemeriksaan kesehatan instance fungsi. Anda dapat mengeksekusi instance fungsi lagi, kemudian kode berikut dikembalikan:
{ "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 konsol, Function Compute juga memungkinkan Anda memanggil Operasi API untuk mengonfigurasi pemeriksaan kesehatan instance. Untuk informasi lebih lanjut, lihat UpdateFunction.