我正在使用 AWS Lambda 函數(shù)來處理來自 AWS API Gateway 調(diào)用的請求。我正在根據(jù)請求發(fā)送負(fù)載,并且可以在 CloudWatch 中驗(yàn)證負(fù)載是否從網(wǎng)關(guān)傳遞到 lambda 函數(shù)。但是,請求正文在我的 Lambda 函數(shù)中為空。這是我的 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”之后看到一些數(shù)據(jù),但什么也沒有。
1 回答

慕妹3146593
TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊
原始問題中的代碼是正確的。handleRequest 的第二個(gè)參數(shù)的類型為 APIGatewayProxyRequest。在API網(wǎng)關(guān)中,我發(fā)送的是普通請求,而不是代理請求。我將 API 網(wǎng)關(guān)路由重新部署為代理請求,并獲得了我期望的請求正文。我仍然不確定我的原始請求是否無法發(fā)送正文,或者傳遞到handleRequest函數(shù)的正常請求的結(jié)構(gòu)是否與代理請求的結(jié)構(gòu)不同,因此APIGatewayProxyRequest類型無法解析其正文。
- 1 回答
- 0 關(guān)注
- 132 瀏覽
添加回答
舉報(bào)
0/150
提交
取消