Topik ini menjelaskan latar belakang, batasan, dan perilaku pemeriksaan kesehatan instance fungsi. Topik ini juga menjelaskan cara mengonfigurasi kebijakan pemeriksaan kesehatan untuk instance fungsi di konsol Function Compute.
Informasi latar belakang
Jika Anda memilih Use Custom Runtime atau Use Container Image saat membuat fungsi dan menggunakan gambar kontainer Anda sendiri sebagai lingkungan runtime fungsi, lingkungan runtime kustom Anda mungkin tidak stabil, yang dapat menyebabkan pengecualian pada instance fungsi. Function Compute mendukung pemeriksaan kesehatan berkala untuk instance fungsi guna menghindari kegagalan permintaan akibat pengecualian instance.
Batasan
Anda hanya dapat mengonfigurasi kebijakan pemeriksaan kesehatan untuk instance fungsi yang berjalan di lingkungan runtime kustom dan instance yang dimulai menggunakan gambar kustom.
Perilaku pemeriksaan kesehatan
Startup instance
Bagian ini menjelaskan perilaku startup instance fungsi setelah Anda mengonfigurasi kebijakan pemeriksaan kesehatan untuk sebuah fungsi:
Hooks Initializer dieksekusi pertama kali jika didefinisikan. Jika hooks Initializer tidak didefinisikan, pemeriksaan kesehatan pertama langsung dilakukan.
Instance dianggap sehat jika mereka lulus pemeriksaan kesehatan pertama. Setelah itu, mereka memasuki siklus pemeriksaan kesehatan berkala. Jika mereka gagal dalam pemeriksaan kesehatan pertama, instance dianggap gagal memulai dan proses pemeriksaan kesehatan dihentikan. Pesan kesalahan terkait kemudian dilaporkan.
Jika jumlah kegagalan pemeriksaan kesehatan berturut-turut mencapai nilai dari Maximum Failures, instance fungsi dianggap tidak sehat. Dalam hal ini, Function Compute mencoba mengalokasikan instance lain untuk memproses permintaan.
Ketika jumlah pemeriksaan kesehatan yang berhasil untuk instance yang tidak sehat mencapai nilai dari Threshold for Successful Detections, instance dianggap sehat.
Untuk informasi lebih lanjut tentang cara mengonfigurasi Threshold for Successful Detections dan Maximum Failures, lihat Konfigurasikan Kebijakan Pemeriksaan Kesehatan di Konsol Function Compute.
Pemeriksaan kesehatan tunggal
Bagian ini menjelaskan perilaku pemeriksaan kesehatan tunggal di Function Compute.
Permintaan GET dikirim ke jalur HTTP tertentu berdasarkan konfigurasi fungsi.
Jika permintaan GET tidak habis waktu dan kode status respons HTTP kurang dari 400 dan lebih besar dari atau sama dengan 200, instance lulus pemeriksaan kesehatan. Sebaliknya, instance dianggap gagal dalam pemeriksaan kesehatan.
Alokasi setelah instance gagal dalam pemeriksaan kesehatan
Jika instance fungsi tidak sehat, Function Compute mencoba mengalokasikan instance lain untuk mengeksekusi permintaan.
Jika Function Compute berhasil mengalokasikan instance baru, permintaan dieksekusi oleh instance baru.
Jika Function Compute gagal mengalokasikan instance lain untuk mengeksekusi permintaan dalam waktu yang tepat, kesalahan pemeriksaan kesehatan dikembalikan. Instance baru dialokasikan selama pemeriksaan kesehatan berikutnya.
Konfigurasikan kebijakan pemeriksaan kesehatan di konsol Function Compute
Topik ini menjelaskan cara mengonfigurasi kebijakan pemeriksaan kesehatan untuk fungsi yang dibuat dari Use Custom Runtime dan Runtime Environments-nya adalah Node.js 14 dan Request Type adalah Event Requests.
Langkah 1: Buat fungsi
Masuk ke konsol Function Compute. Di panel navigasi di sebelah kiri, klik Services & Functions.
Di bilah navigasi atas, pilih wilayah. Pada halaman Services, klik layanan yang diinginkan.
Pada halaman Functions, klik Create Function.
Pada halaman Create Function, pilih Use Custom Runtime, konfigurasikan parameter berdasarkan kebutuhan bisnis Anda, dan kemudian klik Create.
Tabel berikut menjelaskan parameter yang harus Anda konfigurasikan. Pertahankan nilai default untuk parameter lainnya.
Parameter
Deskripsi
Function Name
Masukkan nama untuk fungsi tersebut.
Request Type
Pilih Event Request.
Runtime Environments
Pilih Node.js 14.
Pada halaman detail fungsi, klik tab Code, edit kode fungsi di editor kode, dan kemudian deploy kode dan jalankan fungsi tersebut.
Contoh berikut memberikan kode sampel 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 timeoutDalam kode sebelumnya,
readyzadalah handler dari kebijakan pemeriksaan kesehatan yang ditentukan untuk memproses permintaan HTTP GET di jalur /readyz. Setelah Anda menyelesaikan Langkah 2, Anda dapat mengonfigurasi handler ini untuk dijalankan secara berkala guna memeriksa apakah instance normal.Function Compute mencoba mengalokasikan instance lain ketika menentukan bahwa instance fungsi abnormal. Jika Function Compute gagal mengalokasikan instance lain, kesalahan pemeriksaan kesehatan dikembalikan.
Sebagai contoh, jika Anda mengganti potongan kode untuk pemeriksaan kesehatan dalam kode sampel sebelumnya dengan kode berikut, kode kesalahan 500 dikembalikan.
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'); });Informasi berikut dikembalikan jika fungsi dijalankan lagi.
{ "ErrorCode": "FunctionNotStarted", "ErrorMessage": "check function health failed with status code: 500 " }
Langkah 2: Konfigurasikan kebijakan pemeriksaan kesehatan untuk instance
Masuk ke konsol Function Compute. Di panel navigasi di sebelah kiri, klik Services & Functions.
Di bilah navigasi atas, pilih wilayah. Pada halaman Services, klik layanan yang diinginkan.
Pada halaman Functions, temukan fungsi yang diinginkan dan klik Configure di kolom Actions.
Di bagian Health Check Settings, konfigurasikan parameter dan klik Save. Tabel berikut menjelaskan parameter tersebut.
Parameter
Deskripsi
Health Check
Tentukan apakah akan mengaktifkan fitur pemeriksaan kesehatan. Jika Anda memilih Enable, Anda harus mengonfigurasi parameter berikut:
Request Path
Jalur HTTP GET untuk pemeriksaan kesehatan. Function Compute mengirimkan permintaan HTTP GET ke jalur ini untuk pemeriksaan kesehatan. Nilainya harus dimulai dengan garis miring (/).
Delay for First Detection
Tentukan waktu tunggu sebelum pemeriksaan kesehatan pertama.
Detection Interval
Tentukan interval pengiriman permintaan HTTP GET.
Timeout Period
Tentukan periode timeout permintaan HTTP GET. Ketika periode timeout berakhir, permintaan dianggap gagal.
Maximum Failures
Tentukan ambang batas untuk kegagalan permintaan HTTP GET. Ketika jumlah permintaan HTTP GET yang gagal berturut-turut mencapai nilai yang ditentukan selama pemeriksaan kesehatan berkala, instance dianggap gagal dalam pemeriksaan kesehatan.
Threshold for Successful Detections
Ambang batas sukses untuk permintaan HTTP GET. Ketika jumlah permintaan HTTP GET yang berhasil berturut-turut mencapai nilai ini, instance dianggap telah lulus pemeriksaan kesehatan.
Informasi tambahan
Function Compute juga memungkinkan menggunakan alat Serverless Devs atau Anda untuk memanggil operasi API guna mengonfigurasi fitur pemeriksaan kesehatan untuk instance. Untuk informasi lebih lanjut, lihat topik-topik berikut: