1 回答
TA贡献1893条经验 获得超10个赞
您发布的代码的问题是,它甚至不应该编译。最大的问题是,没有Response结构。应该是吧events.APIGatewayProxyResponse。
此外,代码没有return任何作用,即使您定义它应该返回Responseand error。
我拿走了你的代码并修复了所有这些,它对我有用。固定代码如下所示:
package main
import (
"context"
"fmt"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)
func HanldeLambdaFunction(ctx context.Context, request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
limitString := request.QueryStringParameters["limit"]
fmt.Println("limitString", limitString) //nothing is written
return events.APIGatewayProxyResponse{StatusCode: 200}, nil
}
func main() {
lambda.Start(HanldeLambdaFunction)
}
输出是:
START RequestId: 0c63f94f-b0aa-49de-ba6d-b1150d711b8a Version: $LATEST
limitString 2
END RequestId: 0c63f94f-b0aa-49de-ba6d-b1150d711b8a
REPORT RequestId: 0c63f94f-b0aa-49de-ba6d-b1150d711b8a Duration: 0.56 ms Billed Duration: 100 ms Memory Size: 512 MB Max Memory Used: 34 MB
如果我不得不猜测,那么您的代码甚至不会运行。如果它可以运行但无法读取limit参数,它至少应该 print limitString。
linux请记住,如果您为 AWS Lambda 编译一个 go 二进制文件,您需要amd64像这样编译它:
$ GOOS=linux GOARCH=amd64 go build
- 1 回答
- 0 关注
- 99 浏览
添加回答
举报