小编Shi*_*ore的帖子

单个 Go 二进制文件中是否可以有多个 lambda 函数?

我正在 AWS lambda 上试验 Go,我发现每个函数都需要上传一个二进制文件才能执行。

我的问题是,是否有可能有一个二进制文件可以有两个不同的Handler函数,可以由两个不同的 lambda 函数加载。

例如

func Handler(request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
    fmt.Println("Received body in Handler 1: ", request.Body)

    return events.APIGatewayProxyResponse{Body: request.Body, StatusCode: 200}, nil
}
func Handler1(request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
    fmt.Println("Received body in Handler 2: ", request.Body)

    return events.APIGatewayProxyResponse{Body: request.Body, StatusCode: 200}, nil
}

func EndPoint1() {
    lambda.Start(Handler)
}
func EndPoint2() {
    lambda.Start(Handler1)
}
Run Code Online (Sandbox Code Playgroud)

并以注册 和 的方式调用EndPointsin ,并且相同的二进制文件将上传到函数和。mainEndPointsMyFunction1MyFunction2

我知道拥有两个不同的二进制文件是好的,因为它减少了每个函数的负载/大小。

但这只是一个实验。

提前致谢 :)

go aws-lambda serverless

5
推荐指数
1
解决办法
2502
查看次数

标签 统计

aws-lambda ×1

go ×1

serverless ×1