通过 net core SDK 创建一个 azure eventhub 消费者组?
Create an azure eventhub consumer group via net core SDK?
旧的 WindowsAzure.ServiceBus
库有一个调用 CreateConsumerGroupIfNotExists
在 azure eventhub 上创建一个消费者组。但是,这只是 Net Framework 4.6。我试图找出如何从 C# 在 netstandard2.0
中创建使用者,但我没有看到等效项。有办法吗?
一般情况下,您可以直接使用 REST API Create consumer group
以任何编程语言创建 EventHubs Consumer Group。
在您使用 C# 的方案中,您可以使用 API 适用于 .NET ConsumerGroupsOperationsExtensions.CreateOrUpdate(IConsumerGroupsOperations, String, String, String, String, ConsumerGroup) Method
的 Azure SDK。并且根据Visual Studio 2017的NuGet Package Manager的信息,如下图,相关包Microsoft.Azure.Management.EventHub
支持Netstandard.Library (>=1.6.1)
,所以应该也支持你当前的环境netstandard2.0
.
Peter Pan 指出 C# API 对此的调用是正确的。以下是更多详细信息:
- 在 Azure 中创建一个服务主体(或使用现有的)
- 授予此服务主体"Owner" 访问事件中心实例(在门户中的 IAM => "Role Assignments" 下)
下面代码中的变量来自服务客户端、事件中心和订阅:
private static async Task EnsureConsumerGroup(string consumerGroupName)
{
var context = new AuthenticationContext($"https://login.windows.net/{MY_TENANT_ID}");
var token = await context.AcquireTokenAsync(
"https://management.core.windows.net/",
new ClientCredential(MY_CLIENT_ID, MY_CLIENT_SECRET)
);
var serviceClientCredentials = new TokenCredentials(token.AccessToken);
var eventHubManagementClient = new EventHubManagementClient(serviceClientCredentials)
{
SubscriptionId = MY_SUBSCRIPTION_ID
};
var consumerGroupResponse = await
eventHubManagementClient.ConsumerGroups.CreateOrUpdateWithHttpMessagesAsync(
MY_RESOURCE_GROUP_NAME,
MY_NAMESPACE_NAME,
MY_EVENT_HUB_NAME,
consumerGroupName,
new ConsumerGroup() // I don't know what this parameter is supposed to do.
);
}
想必您也会处理 consumerGroupResponse.Response
中的错误情况。
另请参阅:
旧的 WindowsAzure.ServiceBus
库有一个调用 CreateConsumerGroupIfNotExists
在 azure eventhub 上创建一个消费者组。但是,这只是 Net Framework 4.6。我试图找出如何从 C# 在 netstandard2.0
中创建使用者,但我没有看到等效项。有办法吗?
一般情况下,您可以直接使用 REST API Create consumer group
以任何编程语言创建 EventHubs Consumer Group。
在您使用 C# 的方案中,您可以使用 API 适用于 .NET ConsumerGroupsOperationsExtensions.CreateOrUpdate(IConsumerGroupsOperations, String, String, String, String, ConsumerGroup) Method
的 Azure SDK。并且根据Visual Studio 2017的NuGet Package Manager的信息,如下图,相关包Microsoft.Azure.Management.EventHub
支持Netstandard.Library (>=1.6.1)
,所以应该也支持你当前的环境netstandard2.0
.
Peter Pan 指出 C# API 对此的调用是正确的。以下是更多详细信息:
- 在 Azure 中创建一个服务主体(或使用现有的)
- 授予此服务主体"Owner" 访问事件中心实例(在门户中的 IAM => "Role Assignments" 下)
下面代码中的变量来自服务客户端、事件中心和订阅:
private static async Task EnsureConsumerGroup(string consumerGroupName)
{
var context = new AuthenticationContext($"https://login.windows.net/{MY_TENANT_ID}");
var token = await context.AcquireTokenAsync(
"https://management.core.windows.net/",
new ClientCredential(MY_CLIENT_ID, MY_CLIENT_SECRET)
);
var serviceClientCredentials = new TokenCredentials(token.AccessToken);
var eventHubManagementClient = new EventHubManagementClient(serviceClientCredentials)
{
SubscriptionId = MY_SUBSCRIPTION_ID
};
var consumerGroupResponse = await
eventHubManagementClient.ConsumerGroups.CreateOrUpdateWithHttpMessagesAsync(
MY_RESOURCE_GROUP_NAME,
MY_NAMESPACE_NAME,
MY_EVENT_HUB_NAME,
consumerGroupName,
new ConsumerGroup() // I don't know what this parameter is supposed to do.
);
}
想必您也会处理 consumerGroupResponse.Response
中的错误情况。
另请参阅: