全部产品
Search
文档中心

Function Compute:Penangan Acara

更新时间:Jul 06, 2025

Topik ini mencakup struktur, contoh kode, dan FAQ terkait penangan acara dalam runtime Custom Container.

Latar Belakang

Untuk fungsi Custom Container, Function Compute meneruskan header permintaan umum, badan permintaan, metode POST, serta jalur /invoke dan /initialize ke server HTTP di dalam kontainer. Anda dapat menggunakan tanda tangan fungsi seperti context dan event dari waktu proses yang didukung oleh Function Compute, seperti Go runtime. Header permintaan dan badan juga dapat digunakan sebagai parameter input untuk menentukan logika layanan suatu fungsi. Untuk informasi lebih lanjut, lihat Penangan acara dalam runtime kustom.

Pemanggilan Fungsi

Jika fungsi Custom Container menggunakan penangan acara, server HTTP hanya perlu mengimplementasikan logika untuk jalur /invoke dan metode POST.

Jalur

Permintaan

Respon yang Diharapkan

POST /invoke

Badan Respon: nilai pengembalian handler fungsi, yang mencakup kode respon dan header respon.

  • Kode status HTTP (StatusCode)
    • 200: berhasil
    • 404: gagal
  • Header Respon (x-fc-status)
    • 200: berhasil
    • 404: gagal
Anda dapat menyertakan bidang x-fc-status dalam header respons untuk melaporkan kepada Function Compute apakah fungsi lokal berhasil dipanggil.
  • Jika Anda tidak menentukan nilai untuk bidang x-fc-status, Function Compute menganggap pemanggilan berhasil. Jika terjadi kesalahan selama eksekusi fungsi, sistem tidak melaporkan kesalahan tersebut ke Function Compute. Dalam hal ini, logika bisnis mungkin tidak terpengaruh, tetapi observabilitas Function Compute terpengaruh. Gambar berikut memberikan contohnya.image8hanshujisuanruntime
  • Jika Anda menentukan nilai untuk bidang x-fc-status, sistem melaporkan kegagalan pemanggilan fungsi ke Function Compute dengan menggunakan bidang x-fc-status. Jika terjadi kesalahan selama pemanggilan fungsi, sistem mencatat informasi stack error dalam log. Gambar berikut memberikan contohnya.image9runtimefc
Catatan Kami merekomendasikan agar Anda menentukan bidang StatusCode dan x-fc-status dalam respons HTTP.

Contoh Kode

Dalam contoh Node.js Express berikut, metode POST dan jalur /initialize dipanggil oleh Function Compute saat instance fungsi diinisialisasi. Metode POST dan jalur /invoke bertindak sebagai penangan saat Function Compute dipanggil. Parameter context dan event diperoleh dari req.headers dan req.body, dan hasil pemanggilan dikembalikan sebagai respons HTTP.

'use strict';

const express = require('express');

// Konstanta.
const PORT = 9000;
const HOST = '0.0.0.0';
const app = express();
// Parsing body permintaan berformat JSON.
app.use(express.json({type:['application/json', 'application/octet-stream']}))


// Contoh hook Initializer. Anda harus mengonfigurasi hook initializer saat membuat fungsi.
app.post('/initialize', (req, res) => {
  console.log(req.body)
  res.send('Hello FunctionCompute, /initialize\n');
});


// Memanggil fungsi acara.
app.post('/invoke', (req, res) => {
  console.log(req.body)
  res.send('Hello FunctionCompute, event function\n');
});

var server = app.listen(PORT, HOST);
console.log(`Berjalan pada http://${HOST}:${PORT}`);

server.timeout = 0; // Tidak pernah timeout.
server.keepAliveTimeout = 0; // keepalive, tidak pernah timeout

Contoh untuk bahasa pemrograman lainnya

Anda dapat menggunakan Serverless Devs untuk memigrasikan aplikasi Anda ke Function Compute hanya dengan beberapa klik. Contoh berikut menunjukkan cara menggunakan Serverless Devs untuk menerapkan dan memanggil fungsi secara efisien. Anda dapat memodifikasi contoh kode sesuai dengan kebutuhan bisnis Anda.

FAQ