doushi2902 2019-08-12 21:02
浏览 397
已采纳

为什么AWS API Gateway Websocket发送错误

I am using serverless framework to set up an AWS API Gateway websocket which calls a lambda function written in Go. Right now the handler only logs a message. I can connect to the websocket, and I can see the message is logged in Cloudwatch when I send a message through the socket, but I always get an error message that looks like

{
  "message": "Internal server error",
  "connectionId": "eU3C1cE7CYcCJPw=",
  "requestId": "eU3EQFX0iYcFysQ="
}

There are no errors logged for the lambda in Cloudwatch. The AWS API Gateway config looks good to me. I'm at a loss trying to think of what could cause this.

My main.go:

package main

import (
    "fmt"

    "github.com/aws/aws-lambda-go/events"
    "github.com/aws/aws-lambda-go/lambda"
)

func Handler(request events.APIGatewayWebsocketProxyRequest) {
    fmt.Println("default function ran")
}

func main() {
    lambda.Start(Handler)
}

Probably not super relevant but the serverless.yaml config:

functions:
  websocket-default:
    handler: bin/ws
    events:
      - websocket:
          route: $default

The payload I'm sending:

{
  "action": "whatever",
  "data":  "{whatever}"
}
  • 写回答

2条回答 默认 最新

  • duanran3115 2019-08-13 08:50
    关注

    Not sure if this is the only problem in your code, but your handler signature should be one listed in the doc:

    func ()
    func () error
    func (TIn) error
    func () (TOut, error)
    func (context.Context) error
    func (context.Context, TIn) error
    func (context.Context) (TOut, error)
    func (context.Context, TIn) (TOut, error)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?