在 API Gateway 中,每个 WebSocket 连接都具有唯一的 ConnectionId。这是通过WebSocket管理API在连接创建时自动生成的。
以下是使用AWS Lambda和API Gateway进行WebSocket集成的代码示例,以演示如何使用连接ID:
import json
import boto3
def lambda_handler(event, context):
client = boto3.client('apigatewaymanagementapi',endpoint_url='https://.execute-api..amazonaws.com/')
data = json.loads(event['body'])
connectionId = event['requestContext']['connectionId']
message = data['message']
response = {"message": message}
print("Sending message: {}".format(response))
client.post_to_connection(ConnectionId=connectionId, Data=json.dumps(response).encode('utf-8'))
在上面的代码中,connectionId
是将要发送消息的WebSocket连接的唯一标识符。函数使用boto3.client
创建了一个APIGatewayManagementAPI的实例,然后调用post_to_connection
函数将消息发送到连接。