Python и служебная шина Azure

У меня возникли проблемы с установкой подключения скрипта Python к служебной шине Azure. Аналогичный код на C # (в Windows) работает нормально.

from azure.servicebus import *

AZURE_SERVICEBUS_NAMESPACE='blablabla.servicebus.windows.net'
AZURE_SERVICEBUS_ISSUER='RootManageSharedAccessKey'
AZURE_SERVICEBUS_ACCESS_KEY='sdkfjlkewjrlwerjlewrjlewrjfjflsdkfjew3='

bus_service = ServiceBusService(service_namespace=AZURE_SERVICEBUS_NAMESPACE, account_key=AZURE_SERVICEBUS_ACCESS_KEY, issuer=AZURE_SERVICEBUS_ISSUER) 

bus_service.create_queue('taskqueue')

Это приводит к следующему выводу:

Отслеживание (последний вызов последним): файл «createqueue.py», строка 9, в bus_service.create_queue ('taskqueue') Файл «/usr/local/lib/python2.7/dist-packages/azure/servicebus/servicebusservice. py ", строка 143, в create_queue request.headers = self._update_service_bus_header (request) File" /usr/local/lib/python2.7/dist-packages/azure/servicebus/servicebusservice.py ", строка 860, в _update_service_bus_header ( 'Авторизация', self._sign_service_bus_request (запрос))) Файл "/usr/local/lib/python2.7/dist-packages/azure/servicebus/servicebusservice.py", строка 868, в _sign_service_bus_request self._get_token (request.host , request.path) + '"' File" /usr/local/lib/python2.7/dist-packages/azure/servicebus/servicebusservice.py ", строка 908, в _get_token resp = self._httpclient.perform_request (запрос) Файл "/usr/local/lib/python2.7/dist-packages/azure/http/httpclient.py", строка 191, в perform_request self.send_request_headers (соединение, запросы t.headers) Файл "/usr/local/lib/python2.7/dist-packages/azure/http/httpclient.py", строка 170, в соединении send_request_headers. endheaders () Файл "/usr/lib/python2.7 /httplib.py ", строка 958, в конечных заголовках self._send_output (message_body) Файл" /usr/lib/python2.7/httplib.py ", строка 818, в _send_output файле self.send (msg)" / usr / lib /python2.7/httplib.py ", строка 780, в файле send self.connect ()" /usr/lib/python2.7/httplib.py ", строка 1161, в connect self.timeout, self.source_address) Файл "/usr/lib/python2.7/socket.py", строка 553, в create_connection для res в getaddrinfo (хост, порт, 0, SOCK_STREAM): socket.gaierror: [Errno -2] Имя или служба неизвестны

Что здесь не так?

Спасибо


person mvhoorn    schedule 27.08.2014    source источник
comment
Какую версию Python SDK вы используете и когда вы создали пространство имен SB?   -  person BrentDaCodeMonkey    schedule 27.08.2014
comment
Хороший вопрос: не знаю, так как я только что поднял пакет pip, как 2 дня назад. Я также тестировал Python в Windows с SDK, полученным из MSDN с помощью WebInstaller. Тот же результат. Как ни странно, у меня есть рабочий сценарий, создающий контейнер для хранения больших двоичных объектов. Я также тестировал заранее подготовленную очередь и просто написал сообщение. Это также приводит к тому же поведению при ошибке.   -  person mvhoorn    schedule 29.08.2014
comment
У меня такая же проблема, но решения пока нет. Не работает с Windows-машиной или Linux-машиной с использованием python, но работает с .NET.   -  person vvucetic    schedule 29.08.2014


Ответы (2)


AZURE_SERVICEBUS_NAMESPACE='blablabla'

Вам не нужно указывать полный URL-адрес для пространства имен.

person TheDude    schedule 27.08.2014
comment
Это тоже была моя идея, но с пространством имен или без него результат тот же. Я также запустил сценарий python, создающий контейнер для хранения BLOB-объектов, и он работал (с добавлением URL-адреса и без него). - person mvhoorn; 29.08.2014
comment
Вы используете SAS или ACS? - person TheDude; 29.08.2014
comment
SAS. См. Использование ключа доступа. Опять же: та же концепция безупречно работала в C # / .NET. - person mvhoorn; 31.08.2014
comment
Ах хорошо. Я не думаю, что Python SDK поддерживает SAS. - person TheDude; 31.08.2014

Проверьте подключение к сервису Servicebus на микросифте. У меня была такая же проблема, и проблема заключалась в подключении wlan0 - я потерял свой IP-адрес, назначенный DHCP-сервером. Или ваш DNS не работает должным образом.

person r.taranov    schedule 23.03.2015