Azure Концентратор событий: Создать регистратор - 400 Неверное имя хоста - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь создать доказательство концепции с помощью Azure APIM и застрял на ошибке 400 недопустимого имени хоста.

Я пробовал следовать этому примеру

https://docs.microsoft.com/en-gb/azure/api-management/api-management-howto-log-event-hubs

, который приводит меня на эту страницу

https://docs.microsoft.com/en-us/rest/api/apimanagement/2019-12-01/logger/createorupdate

У меня есть в почтальоне команда put со следующим URL-адресом, вырезали личные данные

https://management.azure.com/subscriptions/xxxxx-yyyy-zzz-a4ed-b0b5ddddddd/resourceGroups/xx-Trial/providers/Microsoft.ApiManagement/service/xxx-API-Management-Services/loggers/loggerId?api-version=2019-12-01

Это отправляется как команда PUT

Это тело, которое также отправляется

{  
 "type": "AzureEventHub",  
 "description": "xx Poc description",  
 "credentials": {  
   "name": "apim",  
   "connectionString": "Endpoint=sb://xx-poc.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=yyyyyyK/ixxxxxxxxxxxxxxc="  
 }  
}  

Возвращаемый ответ:

<h2>Bad Request - Invalid Hostname</h2>
<hr>
<p>HTTP Error 400. The request hostname is invalid.</p>

Буду признателен, если кто-нибудь поможет мне продвинуться вперед, так как я не вижу, что я пропустил.

Спасибо

Ответы [ 2 ]

1 голос
/ 01 июня 2020

После нескольких часов поиска я наконец наткнулся на этот URL https://www.svenmalvik.com/azure-apim-with-eventhub/, который решил мою проблему.

Я все сделал правильно в плане настройки, но это был последний шаг, которого не хватало

$apimCtx = New-AzApiManagementContext -ResourceGroupName "xx-Trial" -ServiceName "xx-API-Management-Services"
$ehConnection = (Get-AzEventHubKey -ResourceGroupName "xx-Trial" -NamespaceName "xx-yyy-zzz-eh-ns" -AuthorizationRuleName "xx-yyy-zzz-eh-auth-rule").PrimaryConnectionString
New-AzApiManagementLogger -Context $apimCtx -LoggerId "simon-logger" -Name "simon-logger" -ConnectionString "$ehConnection;EntityPath=xx-yyy-eh"
0 голосов
/ 30 мая 2020

Я считаю, что что-то не так с телом запроса.

{  
 "type": "AzureEventHub",  
 "description": "xx Poc description",  
 "credentials": {  
   "name": "apim",  
   "connectionString": "Endpoint=sb://xx-poc.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=yyyyyyK/ixxxxxxxxxxxxxxc="  
 }  
}

Пожалуйста, проверьте следующие настройки в теле вашего запроса:

  1. Для name , убедитесь, что это имя экземпляра концентратора событий , а не имя пространства имен Eventhub . И вы можете обратиться к этому do c для получения дополнительной информации о них.

  2. Для connectionString убедитесь, что это Строка подключения к пространству имен Eventhub (не используйте строку подключения на уровне экземпляра Eventhub). Для получения дополнительных сведений обратитесь к этому do c.

В конце также проверьте, отключен ли экземпляр eventhub.

...