1

Python とプロトン ライブラリを使用して、サブスクライバー (メッセージを受信するため) として Azure イベント ハブに接続しようとしています。

サンプルコードを見つけて、最終的に次のようになりました。

import sys
import optparse
from proton import *
import urllib


mng = Messenger()
mng.start()

nb_partitions = 8
sasKeyName = "NAME"
sasPolicyKey = "KEY"
# safeSasPolicyKey = urllib.quote(sasPolicyKey, "")
safeSasPolicyKey = sasPolicyKey

args = []
for i in range(0, nb_partitions):
    address = "amqps://%s:%s@clienteventhub-ns.servicebus.windows.net/NAME/ConsumerGroups/$Default" % (
        sasKeyName, safeSasPolicyKey)
    args.append(address + "/Partitions/" + str(i))

print(args)

for a in args:
    # mng.subscribe(a)
    mng.subscribe(a)
    print "Subscribed to %s" % (a)

msg = Message()
while True:
    mng.recv()
    while mng.incoming:
        try:
            mng.get(msg)
        except Exception, e:
            print e
        else:
            print msg.address, msg.subject or "(no subject)", msg.properties, msg.body

pipを使用してインストールされたpython-qpid-proton(0.10)を使用して、macosxでこのコードを実行しています。

しかし、イベントハブのメッセージを取得できません。動作する別のスクリプトから毎分メッセージを送信していることを知っています。印刷した次の出力を取得します

amqps://NAME:KEY@clienteventhub-ns.servicebus.windows.net/NAME/ConsumerGroups/$Default/Partitions/0 にサブスクライブしました amqps://NAME:KEY@clienteventhub-ns.servicebus.windows.net/ にサブスクライブしましたNAME/ConsumerGroups/$Default/Partitions/1 amqps://NAME:KEY@clienteventhub-ns.servicebus.windows.net/NAME/ConsumerGroups/$Default/Partitions/2 にサブスクライブしました amqps://NAME:KEY@ にサブスクライブしましたclienteventhub-ns.servicebus.windows.net/NAME/ConsumerGroups/$Default/Partitions/3 amqps://NAME:KEY@clienteventhub-ns.servicebus.windows.net/NAME/ConsumerGroups/$Default/Partitions/4 にサブスクライブしましたamqps://NAME:KEY@clienteventhub-ns.servicebus.windows.net/NAME/ConsumerGroups/$Default/Partitions/5 にサブスクライブしました amqps://NAME:KEY@clienteventhub-ns.servicebus.windows.net/ にサブスクライブしましたNAME/ConsumerGroups/$Default/Partitions/6 amqps://NAME に登録:KEY@clienteventhub-ns.servicebus.windows.net/NAME/ConsumerGroups/$Default/Partitions/7

このコードが機能しない理由を知っていますか? ありがとう

4

2 に答える 2