我正在使用无服务器运行一个用 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条经验 获得超3个赞
我通过将我的 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 关注
- 107 浏览
添加回答
举报
0/150
提交
取消