为了账号安全,请及时绑定邮箱和手机立即绑定

GoLang AWS Lambda 函数在 API 网关请求中缺少主体

GoLang AWS Lambda 函数在 API 网关请求中缺少主体

Go
HUWWW 2023-07-10 14:54:34
我正在使用 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类型无法解析其正文。



查看完整回答
反对 回复 2023-07-10
  • 1 回答
  • 0 关注
  • 62 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信