有没有办法在Azure Service Bus上用Python发送带有主题和订阅的文件?

2022-05-19 00:00:00 python azure azureservicebus

问题描述

总结问题:

我正在尝试在Azure Service Bus上发送带有主题和订阅的CSV文件。我正在关注官方的快速入门here,并成功连接了ASB并打印了消息。我想做的下一步是在ASB上发送CSV文件,以便监听程序复制这些文件。CSV文件当前位于坞站内。是否可以发送CSV文件?如果是这样的话,是如何做到的?任何可以指引我正确方向的有用资源我都非常感激。

我尝试的内容:

主题和订阅已由另一个团队创建。连接字符串只有发送和侦听的权限。基本上只是遵循快速入门:

from azure.servicebus.control_client import ServiceBusService, Message, Topic, Rule, DEFAULT_RULE_NAME

conString = '<connection string>'  

azure_namespace = 'abc'
key_name = 'xyz'
key_value = '1q2w3e4r5t6y7u8i9o='

bus_service = ServiceBusService(
    service_namespace=azure_namespace,
    shared_access_key_name=key_name,
    shared_access_key_value=key_value)
    
conTopic = 'mytopic'
conSubscription = 'mysubscription'

# send message to a topic 
for i in range(5):
    msg = Message('Msg {0}'.format(i).encode('utf-8'))
    bus_service.send_topic_message(conTopic, msg)
    
# receive messages from a subscription 
msg = bus_service.receive_subscription_message(conTopic, conSubscription)
print(msg.body) 

感谢大家的帮助

编辑:

好的,在做了一些挖掘之后,Blob存储是一种尝试它的方法。here是发布在SO上的另一个问题,以供将来参考。


解决方案

这不是适合它的服务。Service Bus上的消息有大小限制。您可以做的是将文件添加到Blob存储,然后向Service Bus添加一条带有文件名或路径的消息

相关文章