全部产品
Search
文档中心

Function Compute:Penanganan HTTP

更新时间:Jul 02, 2025

Anda dapat menggunakan penanganan HTTP untuk memproses permintaan HTTP secara efisien. Saat memanggil suatu fungsi, Function Compute menjalankan penanganan yang ditentukan dalam kode fungsi untuk memproses permintaan HTTP. Topik ini menjelaskan struktur dan karakteristik penanganan HTTP untuk Java.

Tanda tangan untuk penanganan HTTP

Function Compute menyediakan penangan fungsi HTTP berbasis Servlet dalam format berikut:

public interface HttpRequestHandler {
    /**
     * Fungsi masuk untuk pemicu HTTP fc 
     * @param request Permintaan servlet
     * @param response Tanggapan servlet
     * @param context Konteks fc
     * @throws IOException Jika terjadi kesalahan IO
     * @throws ServletException Jika terjadi kesalahan servlet
     */
    public void handleRequest(HttpServletRequest request, HttpServletResponse response, Context context) throws IOException, ServletException;
}      

Untuk menggunakan penanganan HTTP, Anda harus mengonfigurasi pemicu HTTP untuk fungsi tersebut. Untuk menggunakan pemicu HTTP, pastikan library fc-java-core ditingkatkan ke versi 1.3.0 atau lebih baru. Contoh: Untuk informasi lebih lanjut tentang pemicu HTTP, lihat Ikhtisar.

<dependency>
  <groupId>com.aliyun.fc.runtime</groupId>
  <artifactId>fc-java-core</artifactId>
  <version>1.4.1</version>
</dependency>

Kode contoh

package com.aliyun.fc.example;

import java.io.IOException;
import java.io.OutputStream;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.aliyun.fc.runtime.Context;
import com.aliyun.fc.runtime.HttpRequestHandler;

public class Hello implements HttpRequestHandler {
    public void handleRequest(HttpServletRequest request, HttpServletResponse response, Context context)
            throws IOException, ServletException {
        String requestPath = (String) request.getAttribute("FC_REQUEST_PATH");
        String requestURI = (String) request.getAttribute("FC_REQUEST_URI");
        String requestClientIP = (String) request.getAttribute("FC_REQUEST_CLIENT_IP"); 

        response.setStatus(200);
        response.setHeader("header1", "value1");
        response.setHeader("header2", "value2");

        String body = String.format("Path: %s\n Uri: %s\n IP: %s\n", requestPath, requestURI, requestClientIP);
        OutputStream out = response.getOutputStream();
        out.write((body).getBytes());
    }
}          
  • HttpServletRequest

    Dalam Function Compute, antarmuka untuk pemicu HTTP didasarkan pada protokol Servlet standar. Permintaan dienkapsulasi menjadi objek HttpServletRequest. Anda dapat memperoleh parameter permintaan dan header dari objek ini. Selain itu, Function Compute menambahkan beberapa atribut ke dalam HttpServletRequest. Gunakan getAttribute untuk menanyakan atribut-atribut ini. Atribut yang tersedia meliputi:

    • FC_REQUEST_PATH: Mendapatkan jalur permintaan.

    • FC_REQUEST_URI: Mendapatkan pengenal sumber daya seragam (URI) dari permintaan.

    • FC_REQUEST_CLIENT_IP: Mendapatkan alamat IP klien yang mengirim permintaan.

  • HttpServletResponse

    Gunakan objek HttpServletResponse standar untuk mengembalikan header dan badan tanggapan.

  • context

    Parameter context berisi informasi waktu proses dari sebuah fungsi, seperti ID permintaan dan pasangan AccessKey sementara. Parameter ini bertipe com.aliyun.fc.runtime.Context.

Program contoh

Pustaka Function Compute mencakup program contoh yang menggunakan berbagai jenis dan antarmuka penanganan. Setiap program contoh mencakup metode untuk kompilasi dan penyebaran yang mudah. Contoh: