首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么AWS API网关websocket发送错误

为什么AWS API网关websocket发送错误
EN

Stack Overflow用户
提问于 2019-08-13 05:02:19
回答 2查看 569关注 0票数 0

我正在使用无服务器框架来设置一个AWS API网关websocket,它调用用Go编写的lambda函数。现在,处理程序只记录一条消息。我可以连接到websocket,当我通过套接字发送消息时,我可以看到消息记录在Cloudwatch中,但我总是收到如下错误消息

代码语言:javascript
复制
{
  "message": "Internal server error",
  "connectionId": "eU3C1cE7CYcCJPw=",
  "requestId": "eU3EQFX0iYcFysQ="
}

在Cloudwatch中没有为lambda记录错误。我认为AWS API Gateway配置很好。我正不知所措地想着是什么导致了这一切。

我的main.go:

代码语言:javascript
复制
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)
}

可能不是超级相关,但serverless.yaml配置:

代码语言:javascript
复制
functions:
  websocket-default:
    handler: bin/ws
    events:
      - websocket:
          route: $default

我发送的有效负载:

代码语言:javascript
复制
{
  "action": "whatever",
  "data":  "{whatever}"
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-13 16:50:36

我不确定这是否是您代码中唯一的问题,但是您的处理程序签名应该是doc中列出的签名

代码语言:javascript
复制
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)
票数 0
EN

Stack Overflow用户

发布于 2019-08-14 00:04:47

好的,它经过了大量的试验和错误,但这是有效的方法签名

代码语言:javascript
复制
type Response events.APIGatewayProxyResponse

func Handler(context context.Context, request events.APIGatewayWebsocketProxyRequest) (Response, error) 

我真的希望golang的文档更好一些。感谢克莱门特为我指明了正确的方向。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57468191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档