我正在使用 AWS Lambda 函数来处理来自 AWS API Gateway 调用的请求。我正在根据请求发送负载,并且可以在 CloudWatch 中验证负载是否从网关传递到 lambda 函数。但是,请求正文在我的 Lambda 函数中为空。这是我的 Lambda 代码:package mainimport ( "context" "fmt" "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda")func handleRequest(ctx context.Context, request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) { fmt.Println("Body") fmt.Println(request.Body) fmt.Printf("Processing request data for request %s.\n", request.RequestContext.RequestID) fmt.Printf("Processing request data for request %s.\n", request.RequestContext.RequestID) fmt.Printf("Body size = %d.\n", len(request.Body)) fmt.Println("Headers:") for key, value := range request.Headers { fmt.Printf(" %s: %s\n", key, value) } return events.APIGatewayProxyResponse{Body: request.Body, StatusCode: 200}, nil}func main() { lambda.Start(handleRequest)}我期望在 Cloudwatch 中的“Body”之后看到一些数据,但什么也没有。
1 回答
慕妹3146593
TA贡献1820条经验 获得超9个赞
原始问题中的代码是正确的。handleRequest 的第二个参数的类型为 APIGatewayProxyRequest。在API网关中,我发送的是普通请求,而不是代理请求。我将 API 网关路由重新部署为代理请求,并获得了我期望的请求正文。我仍然不确定我的原始请求是否无法发送正文,或者传递到handleRequest函数的正常请求的结构是否与代理请求的结构不同,因此APIGatewayProxyRequest类型无法解析其正文。
- 1 回答
- 0 关注
- 62 浏览
添加回答
举报
0/150
提交
取消