亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何訪問 Go AWS lambda 函數中的參數

如何訪問 Go AWS lambda 函數中的參數

Go
墨色風雨 2022-07-11 17:25:59
我在 AWS lambda 上使用 Go,并且正在編寫以下代碼:func HanldeLambdaFunction(ctx context.Context, request events.APIGatewayProxyRequest) (Response, error) {    limitString := request.QueryStringParameters["limit"]    fmt.Println("limitString", limitString) //nothing is written}我正在使用 api 網關測試 lambda 函數并提供參數:limit=2lambda 函數正在成功執行,但未讀取限制。如何訪問參數?
查看完整描述

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


查看完整回答
反對 回復 2022-07-11
  • 1 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號