使用无服务器的自定义api网关websocket端点
我试图通过serverless定制api网关websocket端点,因为我需要为部署在websocket之前的cloudfront初始化它。 初始化代码如下所示:使用无服务器的自定义api网关websocket端点,websocket,aws-api-gateway,serverless-framework,Websocket,Aws Api Gateway,Serverless Framework,我试图通过serverless定制api网关websocket端点,因为我需要为部署在websocket之前的cloudfront初始化它。 初始化代码如下所示: ApiGatewayWebsocketApi: Type: AWS::ApiGatewayV2::Api Properties: Name: ${self:provider.stage}-${self:provider.variant}-WebsocketApi Protoco
ApiGatewayWebsocketApi:
Type: AWS::ApiGatewayV2::Api
Properties:
Name: ${self:provider.stage}-${self:provider.variant}-WebsocketApi
ProtocolType: WEBSOCKET
RouteSelectionExpression: "$request.body.action"
Description: "WebSocket API for ${self:provider.variant}"
我将其导出为输出:
ApiGatewayWebsocketApiId:
Value:
Ref: ApiGatewayWebsocketApi
Export:
Name: ${self:custom.configFile.appCode}-${self:provider.stage}-${self:provider.variant}-ApiGatewayWebsocketApiId
然后apigatewaywebsocketapid将表示一个端点字符串,如b6hnpuyzq6
我可以在websocket serverless.yml中获得它:
WebSocketApiId:
Fn::ImportValue: ${self:custom.configFile.appCode}-${self:provider.stage}-${self:provider.variant}-ApiGatewayWebsocketApiId
但问题是:
如何将其导入到我的函数(如connectionHandler),以便此websocket可以使用上面导入的端点:
connectionHandler:
name: ${self:provider.stage}-${self:provider.variant}-${self:custom.configFile.appCode}-ws-connection
handler: WebsocketTestHandler
events:
- websocket:
route: $connect
- websocket:
route: $disconnect
也许您可以尝试通过处理程序中可用的
WEB\u SOCKET\u API\u ID
环境变量传递websocketapid
参数值,如下所示:
connectionHandler:
name: ${self:provider.stage}-${self:provider.variant}-${self:custom.configFile.appCode}-ws-connection
handler: WebsocketTestHandler
environment:
WEB_SOCKET_API_ID:
Ref: WebSocketApiId
events:
- websocket:
route: $connect
- websocket:
route: $disconnect