#visual-studio #azure #etw #azure-eventhub #azure-diagnostics
#visual-studio #azure #etw #azure-eventhub #azure-диагностика
Вопрос:
Я пытаюсь настроить потоковую передачу из набора масштабируемых виртуальных машин Azure в event hub с помощью конфигурации диагностики.
У меня есть общедоступная конфигурация, которая включает в себя SinksConfig следующим образом (я опустил остальную часть конфигурации для краткости):
{
"WadCfg": {
"DiagnosticMonitorConfiguration": {
*** config for performance counters and ETW ***
"SinksConfig": {
"Sink": [
{
"name": "eventhub",
"EventHub": {
"Url": "sb://myhub.servicebus.windows.net/mycompanyapplication",
"SharedAccessKeyName": "RootManageSharedAccessKey"
}
}
]
}
},
"StorageAccount": "<storageaccount>"
}
и частная конфигурация:
{
"storageAccountName": "<storageaccountname>",
"storageAccountKey": "<storageaccountkey>",
"storageAccountEndPoint": "https://core.windows.net",
"EventHub": {
"Url": "sb://myhub.servicebus.windows.net/mycompanyapplication",
"SharedAccessKeyName": "RootManageSharedAccessKey",
"SharedAccessKey": "<sharedaccesskey>"
}
}
Однако event hub ничего не получает. В журналах учетной записи хранилища я вижу, что расширение диагностики запущено:
но в подсостоянии есть много ошибок вокруг ключа SAS и event hub:
Когда я снова проверяю конфигурацию диагностики Visual Studio в наборе масштабов, я вижу эту ошибку:
Я проверил соглашение об именовании SharedAccessKeyName (которое по умолчанию предоставляется при настройке event hub) и знаю, что ключ SAS работает, поскольку я написал консольное приложение для отправки сообщений в тот же event hub с теми же учетными данными, и оно работало нормально.
Таким образом, очевидно, что существует проблема с аутентификацией в event hub, поскольку он не может прочитать ключ доступа из файла конфигурации. Однако я не вижу другого способа ее предоставления.
Я упускаю что-то очевидное здесь, в моей конфигурации?
Ответ №1:
Оказывается, проблема была довольно простой, я взял URL-адрес из строки подключения на портале, который был
sb://myhub.servicebus.windows.net/mycompanyapplication
когда это должно было быть
https://myhub.servicebus.windows.net/mycompanyapplication
Теперь данные свободно поступают в event hub.
Однако конфигурация диагностики в VS по-прежнему показывает предупреждение о невозможности прочитать ключ SAS, который теперь выглядит как «отвлекающий маневр», который в конечном итоге стоил мне много времени:(