Концентраторы событий Azure - проверка подлинности REST API

У меня есть программа Python, которая генерирует потоковые данные. Каждый фрагмент данных хранится как переменная с именем message.

Поскольку концентраторы событий не предлагают Python SDK, я решил использовать их REST API. Я попытался отправить данные в свой экземпляр Event Hub как часть моей программы Python, которая генерирует данные следующим образом:

r = requests.post("https://{Instance name}.servicebus.windows.net/{Path}/messages", message)

print(r.status_code, r.reason)

После выполнения этого кода я получаю 401 Unauthorized ответ.

Столкнувшись с этой проблемой, я использовал это руководство, чтобы попытаться создать подпись общего доступа. После использования curl для подтверждения работы моего сгенерированного токена я получил HTTP/1.1 401 40103: Invalid authorization token signature ответ.

Есть ли лучший способ отправить данные, все еще генерируя их на Python? Лучший способ создать подпись общего доступа?


person pkshultz    schedule 30.05.2017    source источник


Ответы (1)


Пакет Azure SDK для Python поддерживает отправку сообщений в концентраторы событий: https://github.com/Azure/azure-sdk-for-python/tree/master/azure-servicebus#event-hub.

Я бы предложил использовать SDK, но если вы действительно хотите напрямую вызывать REST API, взгляните на реализацию методов концентраторов событий в источнике SDK: https://github.com/Azure/azure-sdk-for-python/blob/master/azure-servicebus/azure/servicebus/servicebusservice.py.

person Vassili Altynikov    schedule 30.05.2017
comment
Я не знал, что в пакете SDK для Azure есть поддержка концентраторов событий. Я готов к работе благодаря вашей помощи. Спасибо! - person pkshultz; 31.05.2017