如何用Azure.ResourceManager.EventHubs库编程创建Event Hub?
如何通过Azure.ResourceManager.EventHubs库编程创建Event Hub?
可以通过编程方式在Event Hub命名空间中创建新的Event Hub,EventHubsNamespaceResource类其实支持创建操作,你可以利用它的GetEventHubs()方法获取Event Hub集合操作对象,进而调用创建方法。
修改后的完整代码如下:
ResourceGroupResource _resourceGroup; public EventHubResource GetOrCreateEventHub(string eventHubNamespaceName, string eventHubName) { var eventHubNamespace = _resourceGroup.GetEventHubsNamespace(eventHubNamespaceName).Value; try { return eventHubNamespace.GetEventHub(eventHubName).Value; } catch (Exception ex) { // 配置新Event Hub的参数,比如分区数、消息保留天数等 var eventHubData = new EventHubData() { PartitionCount = 2, // 根据需求设置分区数 MessageRetentionInDays = 7 // 根据需求设置保留天数 }; // 同步创建Event Hub(也可使用CreateOrUpdateAsync异步方法) var createOperation = eventHubNamespace.GetEventHubs().CreateOrUpdate(WaitUntil.Completed, eventHubName, eventHubData); return createOperation.Value; } }
关键说明:
- 使用
EventHubData类定义新Event Hub的核心配置,比如分区数、消息保留时长等,可根据业务需求调整参数。 CreateOrUpdate方法本身就支持“存在则返回、不存在则创建”的逻辑,也可以直接用这个方法替代原来的try-catch逻辑,避免异常捕获的开销:var eventHubNamespace = _resourceGroup.GetEventHubsNamespace(eventHubNamespaceName).Value; var eventHubData = new EventHubData { PartitionCount = 2, MessageRetentionInDays = 7 }; var operation = eventHubNamespace.GetEventHubs().CreateOrUpdate(WaitUntil.Completed, eventHubName, eventHubData); return operation.Value;- 若偏好异步编程,可调用
CreateOrUpdateAsync方法,搭配await关键字使用。
内容的提问来源于stack exchange,提问作者Martin Staufcik
相关产品推荐
相关产品推荐

