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 關注
- 120 瀏覽
添加回答
舉報