Как прочитать сообщение из служебной шины Azure с помощью Python? - PullRequest
0 голосов
/ 23 октября 2019

Я создал очередь служебной шины с разрешениями на отправку и прослушивание.

Используя язык программирования C #, я могу читать данные из этой очереди.

Но когда я пытаюсь сделать то же самое с python, я сталкиваюсь с некоторыми проблемами, также я новичок в Python и использую с ним службы Azure. Ниже приведены фрагменты кода, которые дают мне ошибку.

Фрагмент 1

from azure.servicebus import QueueClient, Message

# Create the QueueClient
queue_client = QueueClient.from_connection_string(
    "<CONNECTION STRING>", "<QUEUE NAME>")

# Receive the message from the queue
with queue_client.get_receiver() as queue_receiver:
    messages = queue_receiver.fetch_next(timeout=3)
    for message in messages:
        print(message)
        message.complete()

Ошибка

Traceback (most recent call last):
  File "C:\installs\readBus1.py", line 1, in <module>
    from azure.servicebus import QueueClient, Message
ImportError: cannot import name 'QueueClient'

Фрагмент 2

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

bus_service = ServiceBusService(
    service_namespace='<NameSpace>',
    shared_access_key_name='<KeyName>',
    shared_access_key_value='<ConnectionString>')


msg = bus_service.receive_subscription_message('fileupload', 'AllMessages', peek_lock=True)
if msg.body is not None:
    print(msg.body)
    msg.delete()

Ошибка

Traceback (most recent call last):
  File "C:\installs\readBus1.py", line 2, in <module>
    from azure.servicebus.control_client import ServiceBusService, Message, Topic, Rule, DEFAULT_RULE_NAME
ModuleNotFoundError: No module named 'azure.servicebus.control_client'

Я использую Python 3.6, также я установил службы Azure с помощью команды

pip install azure

Я новичок в Python и использую его с Azure.

1 Ответ

0 голосов
/ 24 октября 2019

Эти сообщения об ошибках указывают, что среда python, в которой вы запускаете свой скрипт, не может найти модули Azure.

Вы можете проверить, правильно ли установлен и представлен модуль, с помощью следующей команды для python 3:

pip3 list #Show all installed packages.
pip3 show azure # Show installed version, location details etc.

Если модуль отсутствует в списке, вы можете установить его с помощью:

pip3 install azure
pip3 install azure-servicebus #If you want to install only service bus.

Затем вы можете запустить свой скрипт с помощью:

python3 your_script.py

Еслина вашем компьютере установлено несколько версий python, то есть python 2.x или python 3.x. Вы можете найти более подробную информацию здесь .

Полезно проверить, работает ли скрипт в ожидаемой среде / экземпляре python со всеми зависимостями;так как может быть несколько сред и / или несколько интерпретаторов.

В зависимости от результатов выше;вам может понадобиться добавить правильную переменную пути Python на вашем компьютере .


Официальную документацию / примеры Python для служебной шины можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...