如何从应用获取Azure Event Hub实例详情?ARM API使用问题
解决Azure Event Hub实例详情及连接字符串获取问题
嘿,我明白你现在的困扰——用Resources ListByResourceGroup API只能拿到Event Hub命名空间,但拿不到具体的实例名称和连接字符串对吧?别担心,这是因为Event Hub实例是命名空间下的子资源,而连接字符串则和命名空间(或实例)的授权规则绑定,得用专门的Event Hub API来获取。
获取Event Hub实例名称
要列出指定命名空间下的所有Event Hub实例,你需要调用Event Hub的专用列表API:
GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventHub/namespaces/{namespaceName}/eventhubs?api-version=2024-01-01
这个API的返回结果里,每个条目都会包含name字段,这就是你要找的Event Hub实例名称。你可以先通过Resources ListByResourceGroup拿到所有命名空间,再逐个调用这个API来获取对应命名空间下的实例列表。
获取连接字符串
连接字符串是和授权规则(Authorization Rule)关联的,分两种场景:
1. 获取命名级别的连接字符串(适用于该命名空间下所有实例)
首先获取命名空间的所有授权规则:
GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventHub/namespaces/{namespaceName}/authorizationRules?api-version=2024-01-01
然后针对每个授权规则,调用listKeys接口获取连接字符串:
GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventHub/namespaces/{namespaceName}/authorizationRules/{ruleName}/listKeys?api-version=2024-01-01
返回结果里的primaryConnectionString和secondaryConnectionString就是你需要的连接字符串。
2. 获取单个Event Hub实例的专属连接字符串
如果需要针对某个特定实例的连接字符串,可以调用实例级别的listKeys接口:
GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventHub/namespaces/{namespaceName}/eventhubs/{eventHubName}/authorizationRules/{ruleName}/listKeys?api-version=2024-01-01
这个接口返回的是仅对该Event Hub实例有效的连接字符串。
整体流程总结
- 用Resources ListByResourceGroup API获取目标资源组下的所有Event Hub命名空间;
- 遍历每个命名空间,调用Event Hub实例列表API获取该命名空间下的所有实例名称;
- 根据需求,调用对应级别的授权规则
listKeysAPI获取连接字符串。
内容的提问来源于stack exchange,提问作者Abhishek Upadhyay
相关产品推荐
相关产品推荐

