0

我正在尝试使用 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 命令,编辑了个人详细信息

https://management.azure.com/subscriptions/xxxxx-yyyy-zzz-a4ed-b0b5ddddddd/resourceGroups/xx-Trial/providers/Microsoft.ApiManagement/service/xxx-API-Management-Services/loggers/loggerId?api-版本=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>

如果有人能帮助我向前迈进,我将不胜感激,因为我看不到我错过了什么。

谢谢

4

2 回答 2

1

经过数小时的搜索,我终于偶然发现了这个网址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"
于 2020-06-01T09:49:02.393 回答
0

我认为请求正文有问题。

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

请检查您的请求正文中的以下设置:

  1. 对于名称,请确保它是事件中心实例名称,而不是Eventhub 命名空间名称。您可以参考此文档了解有关它们的更多详细信息。

  2. 对于connectionString,请确保它是Eventhub 命名空间 connectiong 字符串(不要使用 Eventhub 实例级连接字符串)。有关更多详细信息,请参阅此文档

最后,请检查 eventthub 实例是否被禁用。

于 2020-05-30T03:27:02.363 回答