Shi*_*ore 5 go aws-lambda serverless
我正在 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
我知道拥有两个不同的二进制文件是好的,因为它减少了每个函数的负载/大小。
但这只是一个实验。
提前致谢 :)
我相信这是不可能的,因为 Lambda 控制台说处理程序是可执行文件的名称:
\n\n\n\n\nHandler:可执行文件名值。例如,“myHandler”将调用myHandler可执行程序的\xe2\x80\x9cmain\xe2\x80\x9d包中的main函数。
\n
因此,一个可执行文件无法承载两个不同的处理程序。
\n