服务器发送事件- Python - Azure

bnl4lu3b  于 2023-02-19  发布在  Python
关注(0)|答案(1)|浏览(156)

我希望设置从Azure到我的本地示例的数据流。
挑战是像Azure函数这样的选项不允许数据流。
我正在寻找Azure SignalR,或者说Azure机器人框架,但是目前为止还没有任何进展。我认为server sent events是一条可行之路,但是不知道从哪里开始使用Azure
我想使用Python,并有数据流,例如,我想流下面的句子一次一个词。

words = 'hello how are you today?'
tyu7yeag

tyu7yeag1#

据我所知,你可以使用Azure事件中心。你可以使用Python的事件中心客户端库来使用来自Azure事件中心的数据。

pip install azure-eventhub

示例代码:

from azure.eventhub import EventHubProducerClient, EventData
CONNECTION_STR "{Event Hubs Connection String}"
EVENTHUB_NAME = "{Event Hub name}"

producer = EventHubProducerClient.from_connection_string(CONNECTION_STR, eventhub_name=EVENTHUB_NAME)

for word in words.split():
  event_data_batch = producer.create_batch()
  event_data = EventData(word)
  try:
    event_data_batch.add(event_data)
  except ValueError:
    producer.send_batch(event_data_batch)
    event_data_batch = producer.create_batch()
    event_data_batch(event_data_batch)

producer.send_batch(event_data_batch)

在本地示例上,代码如下:

from azure.eventhub import EventHubConsumerClient

CONNECTION_STR = "{Event Hubs connection string}"
EVENTHUB_NAME = "{Event Hub name}"
CONSUMER_GROUP = "$default"

consumer = EventHubConsumerClient.from_connection_string(CONNECTION_STR, consumer_group=CONSUMER_GROUP, eventhub_name=EVENTHUB_NAME)

def on_event(partition_context, event):
  print(event,body_as_str())

with consumer:
  consumer.receive(on_event)

相关问题