【发布时间】:2019-09-29 12:04:39
【问题描述】:
我正在尝试通过无服务器自定义我的 api 网关 websocket 端点,因为我需要为在 websocket 之前部署的 cloudfront 初始化它。 初始化代码如下:
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
那么 ApiGatewayWebsocketApiId 将代表一个端点字符串,如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
【问题讨论】:
标签: websocket aws-api-gateway serverless-framework