使用python在Azure Event Hub中收集Websocket流数据



我正在尝试收集比特币直播数据到Azure事件中心。下面是我们如何在本地机器上做的代码。

如何使用此代码收集Azure Event Hub中的流。微软提供的所有示例和文档都不清楚。

import logging
import websocket, json
cc = "btcusd"
interval = '1m'
socket = f'wss://stream.binance.com:9443/ws/{cc}t@kline_{interval}'
def on_message(ws, message):
    json_message = json.loads(message)
    candle = json_message['k']
    is_candle_close = candle['x']
    close = candle['c']
    high = candle['h']
    low = candle['l']
    open = candle['o']
    quote = {
        'close': close,
        'high': high,
        'low': low,
        'open': open
    }
    print(f'{cc} {is_candle_close} {quote}')
def on_error(ws, error):
    logging.error(error)
def on_close(ws):
    logging.info("### closed ###")
    
logging.info("Start")
logging.info("Connecting to websocket")
websocket.enableTrace(True)
ws = websocket.WebSocketApp(socket,
                            on_message = on_message,
                            on_error = on_error,
                            on_close = on_close)
ws.run_forever()

你手头有两项任务:

  • 向事件中心发送数据流。我会首先开始,并在本地应用程序中使用Event Hub Python SDK。
  • 在Azure中托管应用程序。在事件中心端完成后,你可以在Azure Functions中部署应用程序。请参阅Python开发指南(请注意,您可以在Windows本地开发,但需要部署到Linux运行时,但这应该不是问题)。从这里开始。

Functions不是唯一的选项,但可能是最简单的。

最新更新