我有一个带websocket的API网关
WebSocket:
Type: AWS::ApiGatewayV2::Api
Properties:
ProtocolType: WEBSOCKET
RouteSelectionExpression: "$request.body.action"
Name: !Sub ${Appname}-${Environment}
WebSocketStage:
Type: AWS::ApiGatewayV2::Stage
Properties:
StageName: !Ref Environment
AutoDeploy: true
ApiId: !Ref WebSocket
[之前,我在API上附加了一个函数onConnect
,但是由于我发现它不是必需的,因此我从Cloudformation堆栈中删除了它。但是现在我的Websocket不再工作了。
我为API网关启用了Cloudwatch日志,并且发现路由onConnect
仍指向旧的lambda,该lambda不再存在
2020-05-31T19:09:56.014+07:00
(nnnnnnnnnn=) WebSocket Request Route: [$connect]
2020-05-31T19:09:56.014+07:00
(nnnnnnn=) Client [UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36, SourceIp: 115.73.134.142] is connecting to WebSocket API
2020-05-31T19:09:56.014+07:00
(nnnnnn=) Endpoint request URI: https://lambda.ap-southeast-1.amazonaws.com/2015-03-31/functions/arn:aws:lambda:ap-southeast-1:11111111111:function:api-development-onConnectWebsocket-GGGGGGGGG/invocations <-------------------- OLD LAMBDA
2020-05-31T19:09:56.030+07:00
(nnnnnnnn=) Execution failed due to configuration error: Invalid permissions on Lambda function
在控制台中什么也没显示,$connect
路由已删除,那么这是怎么回事?不幸的是,我无法弄清楚,因为实际功能不存在,并且在控制台中指向新功能。
有人可以帮忙吗?
谢谢
您可以通过使用控制台部署api网关阶段进行测试。您可以在此处了解有关cloudformation中的api网关部署的更多信息:https://currentlyunnamed-theclassic.blogspot.com/2018/12/mastering-cloudformation-for-api.html