我正在使用無服務器運行一個用 Go 編寫的 lambda 函數,我想在調用它時向它傳遞幾個參數。這是我為接收請求而創建的結構: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選項調用它,所以我嘗試這樣做serverless invoke -f orders --raw -d '{"startAt":1533513600,"endAt":1534118399}'我試著用雙引號把它包起來serverless invoke -f orders --raw -d "{startAt:1533513600,endAt:1534118399}"serverless invoke -f orders --raw -d "{\"startAt\":1533513600,\"endAt\":1534118399}"我收到了所有三個的編組錯誤:{ "errorMessage": "json: cannot unmarshal string into Go value of type main.RequestStruct", "errorType": "UnmarshalTypeError"}我不確定我做錯了什么,我可以在網上找到任何例子,只有這個無服務器文檔關于如何進行調用和這個aws 文檔關于如何處理 Go 中的事件更新 我嘗試從 AWS 控制臺調用事件并且它起作用了,所以問題很可能出在無服務器調用命令中。
2 回答

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

慕尼黑8549860
TA貢獻1818條經驗 獲得超11個贊
如果您在通過 運行命令時遇到此問題npm
。我在調用它時也遇到了類似的錯誤:
"invoke": "serverless invoke --function myfunction --data \"{ \"Records\": []}\"",
通過將雙引號更改為單引號data
然后突然開始工作:
"invoke": "serverless invoke --function myfunction --data '{ \"Records\": []}'",
- 2 回答
- 0 關注
- 131 瀏覽
添加回答
舉報
0/150
提交
取消