本文介绍如何使用Go请求处理程序响应接收到的事件并执行相应的业务逻辑。
请求处理程序
请求处理程序是您提供的一个方法。当您的函数被调用时,函数计算会运行该方法处理请求。
对Go语言的FC函数而言,您的请求处理程序被编译为一个可执行的二进制文件。您只需要将FC函数的请求处理程序配置项设置为该可执行文件的文件名即可。
在Go语言的代码中,您需要引入官方的SDK库 gitee.com/ctyunfaas/cf-runtime-go-sdk/cf
,并实现 handler
方法和 main
方法。示例如下:
package main
import (
"log"
"gitee.com/ctyunfaas/cf-runtime-go-sdk/cf"
)
func main() {
cf.Start(HandleRequest)
}
func HandleRequest() (string, error) {
log.Println("hello world!")
return "你好,世界!", nil
}
Handler方法签名
下面列举出了有效的Event Handler方法签名,其中 InputType
和 OutputType
与 encoding/json
标准库兼容。
函数计算会使用 json.Unmarshal
方法对传入的 InputType
进行反序列化,以及使用 json.Marshal
方法对返回的 OutputType
进行序列化。
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)
Handler的使用需遵循以下规则:
- Handler必须是一个方法。
- Handler支持0~2个输入参数。如果有2个参数,则第一个参数必须是
context.Context
。 - Handler支持0~2个返回值。如果有1个返回值,则必须是
error
类型;如果有2个返回值,则第2个返回值必须是error
。