Amazon web services API网关WebSocket:同一Lambda函数中的不同处理程序
我试图创建一个使用API网关WebSocket连接到AWS Lambda函数的基本示例 我遵循link的例子 目标是使一个Lambda csproj具有多个入口点(函数),与上面示例中指定的相同 API网关: 我有四条路由,它们都连接到同一个lambda函数:Amazon web services API网关WebSocket:同一Lambda函数中的不同处理程序,amazon-web-services,websocket,aws-lambda,aws-api-gateway,Amazon Web Services,Websocket,Aws Lambda,Aws Api Gateway,我试图创建一个使用API网关WebSocket连接到AWS Lambda函数的基本示例 我遵循link的例子 目标是使一个Lambda csproj具有多个入口点(函数),与上面示例中指定的相同 API网关: 我有四条路由,它们都连接到同一个lambda函数:cgavan-websocket-2: $connect $disconnect echo $default Lambda函数: 我有一个lambda项目,有四种不同的功能: Connect.FunctionHandler(APIGa
cgavan-websocket-2
:
$connect
$disconnect
echo
$default
Connect.FunctionHandler(APIGatewayProxyRequest请求,ILambdaContext上下文)
Disconnect.FunctionHandler(APIGatewayProxyRequest请求,ILambdaContext上下文)
Echo.FunctionHandler(APIGatewayProxyRequest请求,ILambdaContext上下文)
Default.FunctionHandler(APIGatewayProxyRequest请求,ILambdaContext上下文)
WebSocket请求路由:$connect
)时,它总是调用Default.FunctionHandler()
这是websocket api的类似实现,它在被触发时发送随机消息。这里的事件类型
消息
是根据您的需要定制的
导入时间
导入json
进口boto3
def lambda_处理程序(事件、上下文):
打印(事件)
事件类型=事件[“请求上下文”][“事件类型”]
如果事件类型==“连接”或事件类型==“断开”:
响应={'statusCode':200}
返回响应
elif事件类型==“消息”:
连接标识=事件[“请求上下文”][“连接标识”]
域名=事件[“请求上下文”][“域名”]
阶段=事件[“请求上下文”][“阶段”]
message=f'{domain\u name}:{connection\u id}'。编码('utf-8')
api_client=boto3.client('apigatewaymanagementapi',endpoint_url=f“https://{domain_name}/{stage}”)
对于范围(5)内的uu:
api_客户端。post_到_连接(数据=消息,
ConnectionId=连接(id)
时间。睡眠(5)
响应={'statusCode':200}
返回响应
您是否有四个lambda函数,或者尝试从同一个lambda实现它?@SridharRaju我尝试从同一个lambda函数实现它。然后您可以从您的函数处理路由。使用我们在具有eventType的事件中获得的信息。我已经在python中实现了相同的类型,如果您愿意,我将在下面发布。是的,请。那将非常有帮助。