如何解决使用 python 在 Azure 事件中心收集 Websocket 流数据
我正在尝试将比特币实时流数据收集到 Azure 事件中心。 下面是我们如何在本地机器上执行的代码。
如何使用此代码在 Azure 事件中心收集流。微软提供的所有示例和文档都不清楚。
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()
解决方法
您手头有 2 个任务:
- 将数据流发送到事件中心。我会先开始,然后在您的本地应用中使用 Event Hub Python SDK。
- 在 Azure 中托管您的应用。在事件中心端完成后,您可以在 Azure Functions 中部署您的应用程序。请参阅 Python dev guide(请注意,您可以在本地 Windows 上开发,但需要部署到 Linux 运行时,但这应该不是问题)。请参阅 here 以从头开始。
函数不是唯一的选择,但这里可能是最简单的。有关替代方案,请参阅 that list。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。