amazon-web-services - 使用无服务器调用函数时传递 JSON
问题描述
我正在运行一个使用无服务器用 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 控制台调用事件并且它起作用了,所以问题出在无服务器调用命令中。
解决方案
我通过将我的 JSON 放在文件中而不是命令本身中找到了解决此问题的方法,这并不能解决我在问题中遇到的问题,但它是一种使用 Json 调用函数的方法
我添加了一个events/startAndEnd.json
包含我的 json 数据的文件:
{
"startAt":1533513600,
"endAt":1534118399
}
并在调用命令中引用了该文件:serverless invoke -f orders --path events/startAndEnd.json
推荐阅读
- php - 未从 html 代码渲染的图像使用 Laravel5.6 Blade {!! html_code !!}
- flutter - 如何在颤振中定义地图<>
- java - JPA TypedQuery 不返回给定条件的结果
- c - 仅在 Valgrind 中使用 Petsc 运行问题时出现 Seg Fault/Error
- css - css动画结束后不显示
- python - 如何在 python 中准确获取 lambda 函数的代码?
- reactjs - 'yield' 表达式只允许在生成器主体中使用
- outlook - ICal 不更新现有事件
- c# - .Net 标准类库中的 Global.cs 文件替换
- python - Python多处理示例不打印