全部产品
Search
文档中心

Function Compute:Penangan acara

更新时间:Jun 24, 2025

Topik ini menjelaskan struktur dan karakteristik penangan acara untuk Go.

Potongan kode contoh untuk menggunakan penangan acara

Impor pustaka SDK resmi bernama github.com/aliyun/fc-runtime-go-sdk/fc untuk Go dan implementasikan fungsi handler dan main. Berikut adalah potongan kode contoh:

package main

import (
    "fmt"
    "context"

    "github.com/aliyun/fc-runtime-go-sdk/fc"
)

type StructEvent struct {
    Key string `json:"key"`
}

func HandleRequest(ctx context.Context, event StructEvent) (string, error) {
    return fmt.Sprintf("hello, %s!", event.Key), nil
}

func main() {
    fc.Start(HandleRequest)
}

Nilai parameter input event adalah string JSON yang berisi informasi key, seperti yang ditunjukkan dalam potongan kode contoh berikut:

{
  "key": "value"
}

Berikut ini adalah penjelasan dari potongan kode dalam contoh:

  • package main: Paket main. Setiap aplikasi Go harus memiliki paket utama.

  • import: Mengimpor dependensi Function Compute. Anda perlu mengimpor dependensi berikut:

    • github.com/aliyun/fc-runtime-go-sdk/fc: Pustaka inti dari SDK Function Compute untuk Go.

    • context: Objek konteks dari SDK Function Compute untuk Go.

  • func HandleRequest(ctx context.Context, event StructEvent) (string, error): Handler yang digunakan untuk memproses permintaan acara. Handler ini mencakup parameter berikut:

    • ctx context.Context: Menyediakan informasi konteks waktu proses saat suatu fungsi dipanggil di Function Compute. Untuk informasi lebih lanjut, lihat Konteks.

    • event StructEvent: Menentukan data yang akan diteruskan saat fungsi dipanggil. Beberapa tipe data didukung.

    • string, error: Mengembalikan tipe STRING dan pesan kesalahan. Untuk informasi lebih lanjut, lihat Penanganan Kesalahan.

    • return fmt.Sprintf("hello,%s ! ", event.Key), nil: Mengembalikan hello dan nilai parameter event yang diteruskan. Jika nil dikembalikan, tidak ada kesalahan yang terjadi.

  • func main(): Titik masuk untuk menjalankan kode fungsi di Function Compute. Aplikasi Go harus memiliki fungsi main. Anda dapat menambahkan fc.Start(HandleRequest) untuk menjalankan aplikasi Anda di Function Compute.

    null

    Metode yang digunakan untuk memulai penangan HTTP dan penangan acara berbeda. Untuk memulai penangan acara, panggil fungsi fc.Start dalam fungsi main. Untuk memulai penangan HTTP, panggil fungsi fc.StartHttp dalam fungsi main.

Tanda tangan untuk penangan acara

Berikut adalah daftar tanda tangan yang valid untuk penangan acara. Objek InputType dan OutputType kompatibel dengan pustaka standar encoding/json.

Function Compute mendeserialisasi objek InputType menggunakan metode json.Unmarshal dan menserialisasi objek OutputType menggunakan metode json.Marshal. Untuk informasi lebih lanjut tentang cara mendeserialisasi data yang dikembalikan oleh suatu fungsi, lihat JSON Unmarshal.

  • func ()

  • func () error

  • func (InputType) error

  • func () (OutputType, error)

  • func (InputType) (OutputType, error)

  • func (context.Context) error

  • func (context.Context, InputType) error

  • func (context.Context) (OutputType, error)

  • func (context.Context, InputType) (OutputType, error)

Anda harus menggunakan penangan acara sesuai aturan berikut:

  • Handler harus berupa fungsi.

  • Handler dapat memiliki hingga dua parameter input. Jika handler memiliki dua parameter input, parameter pertama harus berupa context.Context.

  • Handler dapat mengembalikan hingga dua nilai. Jika hanya satu nilai yang dikembalikan, nilai tersebut harus bertipe error. Jika dua nilai dikembalikan, nilai kedua harus menunjukkan pesan error.

Berikut adalah potongan kode contoh untuk penangan acara dalam Go:

  • event-struct.go: Potongan kode contoh untuk handler yang objek event-nya bertipe STRUCT.

  • event-string.go: Potongan kode contoh untuk handler yang objek event-nya bertipe STRING.

  • event-map.go: Potongan kode contoh untuk handler yang objek event-nya bertipe map[string]interface{}.

Untuk informasi lebih lanjut tentang potongan kode contoh untuk handler lainnya, kunjungi contoh-contoh.

Konteks

Untuk informasi lebih lanjut tentang konteks, lihat Konteks.