代码之家  ›  专栏  ›  技术社区  ›  Naguib Ihab

使用无服务器调用函数时传递JSON

  •  0
  • Naguib Ihab  · 技术社区  · 7 年前

    以下是我为接收请求而创建的结构:

    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"
    }
    

    我不确定我做错了什么,我可以在网上找到任何这样的例子,只有这个 serverless doc about how to do the invoke aws doc about how to handle the event in Go

    我试着从AWS控制台调用事件,结果成功了,所以问题很可能出在serverless invoke命令中。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Naguib Ihab    7 年前

    我加了一个 events/startAndEnd.json 包含我的json数据的文件:

    {
        "startAt":1533513600,
        "endAt":1534118399
    }
    

    serverless invoke -f orders --path events/startAndEnd.json