Ошибка конфигурации диагностики Visual Studio в настройке Event hub

#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, который теперь выглядит как «отвлекающий маневр», который в конечном итоге стоил мне много времени:(