我正在使用無(wú)服務(wù)器運(yùn)行一個(gè)用 Go 編寫(xiě)的 lambda 函數(shù),我想在調(diào)用它時(shí)向它傳遞幾個(gè)參數(shù)。這是我為接收請(qǐng)求而創(chuàng)建的結(jié)構(gòu):type RequestStruct struct { StartAt int `json:"startAt"` EndAt int `json:"endAt"`}在處理程序中,我試圖打印出這些值:func Handler(ctx context.Context,request RequestStruct) (Response, error) { fmt.Printf("Request: %v",request)我嘗試使用該--raw選項(xiàng)調(diào)用它,所以我嘗試這樣做serverless invoke -f orders --raw -d '{"startAt":1533513600,"endAt":1534118399}'我試著用雙引號(hào)把它包起來(lái)serverless invoke -f orders --raw -d "{startAt:1533513600,endAt:1534118399}"serverless invoke -f orders --raw -d "{\"startAt\":1533513600,\"endAt\":1534118399}"我收到了所有三個(gè)的編組錯(cuò)誤:{ "errorMessage": "json: cannot unmarshal string into Go value of type main.RequestStruct", "errorType": "UnmarshalTypeError"}我不確定我做錯(cuò)了什么,我可以在網(wǎng)上找到任何例子,只有這個(gè)無(wú)服務(wù)器文檔關(guān)于如何進(jìn)行調(diào)用和這個(gè)aws 文檔關(guān)于如何處理 Go 中的事件更新 我嘗試從 AWS 控制臺(tái)調(diào)用事件并且它起作用了,所以問(wèn)題很可能出在無(wú)服務(wù)器調(diào)用命令中。
2 回答

Helenr
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊
我通過(guò)將我的 JSON 放在文件中而不是命令本身找到了解決此問(wèn)題的方法,這并不能解決我在問(wèn)題中遇到的問(wèn)題,但它是一種使用 Json 調(diào)用函數(shù)的方法
我添加了一個(gè)events/startAndEnd.json包含我的 json 數(shù)據(jù)的文件:
{
"startAt":1533513600,
"endAt":1534118399
}
并在調(diào)用命令中引用該文件:serverless invoke -f orders --path events/startAndEnd.json

慕尼黑8549860
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
如果您在通過(guò) 運(yùn)行命令時(shí)遇到此問(wèn)題npm
。我在調(diào)用它時(shí)也遇到了類似的錯(cuò)誤:
"invoke": "serverless invoke --function myfunction --data \"{ \"Records\": []}\"",
通過(guò)將雙引號(hào)更改為單引號(hào)data
然后突然開(kāi)始工作:
"invoke": "serverless invoke --function myfunction --data '{ \"Records\": []}'",
- 2 回答
- 0 關(guān)注
- 136 瀏覽
添加回答
舉報(bào)
0/150
提交
取消