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: Paketmain. 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: Mengembalikanhellodan nilai parametereventyang diteruskan. Jikanildikembalikan, tidak ada kesalahan yang terjadi.
func main(): Titik masuk untuk menjalankan kode fungsi di Function Compute. Aplikasi Go harus memiliki fungsimain. Anda dapat menambahkanfc.Start(HandleRequest)untuk menjalankan aplikasi Anda di Function Compute.nullMetode yang digunakan untuk memulai penangan HTTP dan penangan acara berbeda. Untuk memulai penangan acara, panggil fungsi
fc.Startdalam fungsimain. Untuk memulai penangan HTTP, panggil fungsifc.StartHttpdalam fungsimain.
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 () errorfunc (InputType) errorfunc () (OutputType, error)func (InputType) (OutputType, error)func (context.Context) errorfunc (context.Context, InputType) errorfunc (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 pesanerror.
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 bertipemap[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.