Azure 事件中心:创建记录程序 - 400 主机名无效



我正在尝试使用 Azure APIM 创建概念证明,但遇到了 400 无效主机名错误。

我试过按照这个例子

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

这把我带到了这个页面

https://learn.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-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>

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

谢谢

经过几个小时的搜索,我终于偶然发现了这个 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"

我相信请求正文有问题。

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

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

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

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

最后,还请检查事件中心实例是否已禁用。

最新更新