全部产品
Search
文档中心

Function Compute:Penangan HTTP

更新时间:Jul 02, 2025

Penangan HTTP hanya mendukung fungsi kontainer kustom yang telah dikonfigurasi dengan CAPort. Topik ini menjelaskan karakteristik struktural, deskripsi pemanggilan, dan batasan penangan HTTP dalam kontainer kustom. Topik ini juga memberikan contoh penggunaan penangan HTTP serta jawaban atas beberapa pertanyaan umum.

Informasi latar belakang

Function Compute meneruskan permintaan Anda, termasuk metode, jalur, kueri, header permintaan, badan permintaan, dan header umum yang dihasilkan oleh Function Compute, ke server HTTP. Anda dapat bermigrasi aplikasi web HTTP yang ada dengan lancar. Untuk informasi lebih lanjut, lihat Fungsi HTTP.

Pemanggilan fungsi

Metode untuk memanggil penangan HTTP mirip dengan operasi API web. Anda dapat mengirim permintaan menggunakan cURL, Postman, atau browser. Saat menggunakan browser untuk mengakses pemicu HTTP, fungsi mungkin didownload secara paksa. Untuk informasi lebih lanjut tentang cara menyelesaikan masalah ini, lihat Mengapa saya perlu mendownload respons saat menggunakan browser web untuk mengakses fungsi dengan pemicu HTTP?

Header

Deskripsi

(Opsional) x-fc-base-path

Jika Anda tidak menentukan nama domain kustom, /2016-08-15/proxy/${servicename}/${functionname}/ digunakan sebagai nilai dari x-fc-base-path.

(Opsional) x-fc-status

Header ini berperilaku serupa dengan header dalam fungsi acara. Ini berlaku untuk fungsi HTTP yang tidak dimigrasikan ke Function Compute tetapi dibuat dengan memanggil operasi API web.

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 contoh.image8hanshujisuanruntime
  • Jika Anda menentukan nilai untuk bidang x-fc-status, sistem melaporkan kegagalan pemanggilan fungsi ke Function Compute menggunakan bidang x-fc-status. Jika terjadi kesalahan selama pemanggilan fungsi, sistem mencatat informasi tumpukan kesalahan dalam log. Gambar berikut memberikan contoh.image9runtimefc
Catatan Kami merekomendasikan agar Anda menentukan bidang StatusCode dan x-fc-status dalam respons HTTP.

Catatan penggunaan

  • Hanya satu pemicu HTTP yang dapat dibuat untuk fungsi HTTP di setiap versi atau alias layanan. Untuk informasi lebih lanjut, lihat Kelola Versi dan Kelola Alias.

  • Batasan Permintaan HTTP

    • Header permintaan tidak mendukung bidang kustom yang dimulai dengan x-fc- atau bidang berikut:

      • connection

      • keep-alive

    • Sistem mengembalikan kode status 400 dan kode kesalahan InvalidArgument jika permintaan melebihi salah satu batasan berikut:

      • Ukuran Header: Total ukuran semua kunci dan nilai dalam header tidak boleh melebihi 8 KB.

      • Ukuran Jalur: Total ukuran jalur, termasuk semua parameter kueri, tidak boleh melebihi 4 KB.

      • Ukuran Body: Total ukuran body permintaan pemanggilan sinkron tidak boleh melebihi 32 MB. Total ukuran body permintaan pemanggilan asinkron tidak boleh melebihi 128 KB.

  • Batasan Respons HTTP

    • Header respons tidak mendukung bidang kustom yang dimulai dengan x-fc- atau bidang berikut:

      • connection

      • content-length

      • date

      • keep-alive

      • server

      • content-disposition:attachment

        Catatan

        Untuk alasan keamanan, jika Anda menggunakan nama domain default aliyuncs.com dari Function Compute, server secara otomatis menambahkan bidang content-disposition: attachment ke header respons. Bidang ini membuat hasil yang dikembalikan menjadi unduhan lampiran di browser. Untuk menghapus batasan ini, Anda harus menentukan nama domain kustom. Untuk informasi lebih lanjut, lihat Konfigurasikan Nama Domain Kustom.

    • Jika respons melebihi salah satu batasan berikut, sistem mengembalikan kode status 502 dan kesalahan BadResponse.

      • Ukuran Header: Total ukuran semua kunci dan nilai dalam header tidak boleh melebihi 8 KB.

  • Lainnya

    Anda dapat mengikat nama domain kustom untuk memetakan jalur HTTP yang berbeda ke fungsi HTTP. Untuk informasi lebih lanjut, lihat Konfigurasikan Nama Domain Kustom. Anda juga dapat menggunakan API Gateway untuk mengimplementasikan fitur serupa dengan menyetel jenis layanan backend ke HTTP dan menentukan jalur fungsi HTTP sebagai alamat layanan backend. Untuk informasi lebih lanjut, lihat Gunakan Function Compute sebagai Layanan Backend Operasi API.

Contoh kode

Dalam contoh Node.js Express berikut, metode GET dan POST diarahkan ke penangan yang berbeda. Anda dapat memetakan jalur ke penangan yang Anda butuhkan.

'use strict';

const express = require('express');

// Konstanta
const PORT = 9000;
const HOST = '0.0.0.0';

// Fungsi HTTP get
const app = express();
// Parsing badan permintaan sebagai JSON
app.use(express.json())

app.get('/*', (req, res) => {
  console.log(req.body)
  res.send('Halo FunctionCompute, http GET');
});

app.post('/*', (req, res) => {
  console.log(req.body)
  res.send('Halo FunctionCompute, http POST');
});

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

Contoh

FAQ