Показать фильтры тем служебной шины Azure

Я прорабатываю отличный учебник по использованию Azure PaaS, и у меня возник вопрос. Вот руководство, если оно кому-то поможет (было очень полезно для меня) https://youtu.be/ScJ4VxOmNGs

Есть ли способ помимо написания программы на C # проверить, какие фильтры установлены в правиле подписки на тему служебной шины?

Я могу сделать это:

var rules = await processPaymentInventoryCheckedClient.GetRulesAsync();

И получить к ним доступ таким образом, но есть ли способ использовать CLI или Powershell? Я знаю, что на момент публикации вы не можете этого сделать на портале.

Я пробовал использовать Service Bus Explorer, и он показывает правило, но не фильтр:  Отсутствует фильтр служебной шины

SBE, кстати, потрясающий, очень полезный, если вы его не использовали: https://github.com/paolosalvatori/ServiceBusExplorer < / а>

Если я запустил приведенный выше код C #, а затем перейду к свойствам, я смогу убедиться, что фильтр действительно применен:

введите здесь описание изображения

Спасибо --

Джо


person Joe Ruder    schedule 24.03.2018    source источник
comment
Если вы ищете альтернативный инструмент для просмотра правил, могу ли я предложить вам взглянуть на Cerebrata Cerulean (cerebrata.com/products/cerulean). Он поддерживает просмотр и управление тем же. i.stack.imgur.com/CgoM1.png [Полное раскрытие информации: я являюсь частью команды разработчиков этого инструмента].   -  person Gaurav Mantri    schedule 24.03.2018
comment
Спасибо Гаураву - попробую. Инструменты для управления Azure полезны. Я все еще хочу знать, есть ли способ из командной строки какого-либо типа.   -  person Joe Ruder    schedule 24.03.2018
comment
Спасибо! Я бегло просмотрел доступные командлеты и, основываясь на моем ограниченном поиске, не смог ничего найти.   -  person Gaurav Mantri    schedule 24.03.2018


Ответы (1)


По поводу ServiceBus Explorer - это баг. В настоящее время инструмент показывает только SqlFilters, но не CorrelationFilters. Я поднял проблему, чтобы добавить поддержку для CorrelationFilters.

Чтобы вывести список всех фильтров, вы можете использовать следующий скрипт LinqPad с бесплатной версией инструмента:

var connectionString = "<asb-connection-string>";
var topicPath = "<topic-path>";
var subName = "<subscription-name>";
var nsm = NamespaceManager.CreateFromConnectionString(connectionString);

foreach (RuleDescription rule in await nsm.GetRulesAsync(topicPath,subName))
{
  if (rule.Filter is SqlFilter)
  {
    $"Rule: Name = {rule.Name} - 
        SqlExpression = {(rule.Filter as SqlFilter).SqlExpression}".Dump();
  }

  if (rule.Filter is CorrelationFilter)
  {
    $"Rule: Name = {rule.Name} - Correlate = {(rule.Filter as
        CorrelationFilter)}".Dump();
  }
}
person Sean Feldman    schedule 24.03.2018
comment
Спасибо, Шон ... Я надеялся на интерфейс командной строки, но это поможет. - person Joe Ruder; 24.03.2018
comment
Я нахожусь в середине решения этой проблемы с помощью SBE. Будьте на связи. - person Sean Feldman; 24.03.2018
comment
@JoeRuder исправление для SBE ожидается и будет выпущено в версии 4.0.109. Если он вам уже нужен, вы можете загрузить мой PR, скомпилировать его и использовать. Вот как это будет выглядеть: imgur.com/a/qz2aI - person Sean Feldman; 24.03.2018