qpid proton url,用于从给定订阅(主题)接收消息
Posted
技术标签:
【中文标题】qpid proton url,用于从给定订阅(主题)接收消息【英文标题】:qpid proton url for receiving messages from a given subscription (of a topic) 【发布时间】:2017-12-24 09:50:30 【问题描述】:我想从服务总线读取订阅消息。我正在为 python 使用qpid-proton
库。我正在关注此链接以接收消息Proton-Python-Example-Simple-Receive。我正在传递此 url 以接收来自服务总线的消息 -
url = 'amqps://mynamespace.servicebus.windows.net/SharedAccessKeyName=xxxx/SharedAccessKey=xxxxxxxxx/python-test/Subscriptions/AllMessages'
# python-test is the name of the topic
# AllMessages is the name of the subscription
我收到以下错误 - ERROR:root:The messaging entity 'sb://mynamespace.servicebus.windows.net/sharedaccesskeyname=xxxxx/sharedaccesskey=xxxxxxxxxxxxx/python-test/subscriptions/allmessages' could not be found. TrackingId:c1e4a39edbd44040b2fd48a552d6ae2b_G2, SystemTracker:gateway6, Timestamp:7/19/2017 7:58:51 AM
这是由于上述 URL 的格式不正确。我在网上搜索过,没有提供这方面的适当文件。通过 qpid 读取订阅消息的正确 URL 格式是什么。
【问题讨论】:
【参考方案1】:请尝试如下更改您的网址。
amqps://<SAS Policy Name>:<SharedAccessKey>@mynamespace.servicebus.windows.net/python-test/Subscriptions/AllMessages
【讨论】:
我的实际网址是'amqps://All:Dj8/JPib+RKJS4haixxxxxxxxx@eventservice.servicebus.windows.net/job/Subscriptions/Create'。它抛出错误“ValueError:不是有效的端口号或服务名称:'Dj8'”。我认为这是我的共享访问密钥的问题,因为它包含一个“/”字符 @AnuragSharma 请重新生成不带/
符号的共享访问密钥以重试。根据我的经验,我认为问题是由于 amqp url 解析器无法正确解析 url。
PaterPan - 我现在收到此错误 - 执行此操作需要“Listen”声明。以上是关于qpid proton url,用于从给定订阅(主题)接收消息的主要内容,如果未能解决你的问题,请参考以下文章
使用 Python Qpid/Proton/Messenger(),如何过滤来自 Azure 事件中心的消息?
python-qpid-proton 示例,向 azure 发送消息不起作用