我正在 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
我知道拥有两个不同的二进制文件是好的,因为它减少了每个函数的负载/大小。
但这只是一个实验。
提前致谢 :)