我正在使用无服务器框架来设置一个AWS API Gateway Websocket,该Websocket调用用Go编写的lambda函数。现在,处理程序仅记录一条消息。我可以连接到网络套接字,并且可以看到通过套接字发送消息时消息已记录在Cloudwatch中,但是我总是收到一条类似以下内容的错误消息:
{
"message": "Internal server error",
"connectionId": "eU3C1cE7CYcCJPw=",
"requestId": "eU3EQFX0iYcFysQ="
}
Cloudwatch中没有为lambda记录任何错误。AWS API Gateway配置对我来说很好。我无所适从,试图思考可能导致这种情况的原因。
我的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)
}
可能不是超级相关,而是serverless.yaml配置:
functions:
websocket-default:
handler: bin/ws
events:
- websocket:
route: $default
我发送的有效负载:
{
"action": "whatever",
"data": "{whatever}"
}
不确定这是否是代码中唯一的问题,但是您的处理程序签名应该是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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句