我正在使用Goon AWS lambda,并且正在编写以下代码:
func HanldeLambdaFunction(ctx context.Context, request events.APIGatewayProxyRequest) (Response, error) {
limitString := request.QueryStringParameters["limit"]
fmt.Println("limitString", limitString) //nothing is written
}
我正在使用api网关测试lambda函数并提供参数:limit=2
lambda函数已成功执行,但未读取限制。如何访问参数?
最佳答案
您发布的代码的问题在于,它甚至不应编译。最大的问题是,没有Response
结构。它可能应该是events.APIGatewayProxyResponse
。
此外,即使您定义应返回return
和Response
,该代码也不会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
参数,则至少应打印limitString
。请记住,如果您为AWS Lambda编译了一个go二进制文件,则需要像这样对
linux
和amd64
进行编译:$ GOOS=linux GOARCH=amd64 go build
关于amazon-web-services - 如何在Go AWS Lambda函数中访问参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64896626/