В старой библиотеке WindowsAzure.ServiceBus
есть вызов CreateConsumerGroupIfNotExists
для создания группы потребителей в концентраторе событий Azure. Однако это только Net Framework 4.6. Я пытаюсь понять, как создать потребителя в netstandard2.0
из С#, но не вижу эквивалента. Есть ли способ сделать это?
Создать группу потребителей Azure EventHub с помощью SDK net core?
Ответы (2)
Как правило, вы можете напрямую использовать REST API Create consumer group
a> для создания группы потребителей EventHubs на любом языке программирования.
В вашем сценарии с использованием C# есть API Azure SDK для .NET ConsumerGroupsOperationsExtensions.CreateOrUpdate(IConsumerGroupsOperations, String, String, String, String, ConsumerGroup) Method
, который вы можете использовать. И согласно информации из диспетчера пакетов NuGet в Visual Studio 2017, как показано на рисунке ниже, связанный пакет Microsoft.Azure.Management.EventHub
поддерживает Netstandard.Library (>=1.6.1)
, поэтому он также должен поддерживать вашу текущую среду netstandard2.0
.
EventHubManagementClient
, и я смог вызвать CreateOrUpdateWithHttpMessagesAsync
для создания новой группы потребителей.
- person mikebridge; 16.01.2019
Питер Пэн правильно указывает на вызов C# API для этого. Вот еще некоторые подробности:
- Создайте субъект-службу в Azure (или используйте существующий)
- Предоставьте этому субъекту-службе доступ «Владелец» к экземпляру концентраторов событий (в разделе IAM => «Назначения ролей» на портале).
Переменные в приведенном ниже коде берутся из клиента службы, концентратора событий и подписки:
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
.
Смотрите также:
Microsoft.Azure.ServiveBus
, но я его не вижу. - person mikebridge   schedule 17.12.2018Microsoft.Azure.Management.ServiceBus
< /а>. - person mikebridge   schedule 17.12.2018