0

Я ищу, чтобы клиенты подписывались на темы на служебной шине Azure, используя RSS Reader.Используйте Azure Service Bus для создания RSS-канала

Я не могу найти документацию о том, как я хотел бы начать производить каналы динамически из сервисной шины

Может кто-нибудь дать мне какие-либо указатели?

ответ

2

Service Bus производит фид ATOM все само по себе в корне пространства имен, которое называется «Service Registry». Он сидит на https://yournamespace.servicebus.windows.net и будет вполне вероятно, показать, как пустой, когда вы идете туда с браузером.

Чтобы исследовать канал пространства имен (который представляет собой вложенную структуру фидов ATOM), вам необходимо представить SAS token with "Manage" access для корня пространства имен в заголовке «Авторизация» или «ServiceBusAuthorization» запроса HTTP GET. Стандартный «RootManageSharedAccessKey» правило имеет это право.

class Program 
    { 
     static void Main(string[] args) 
     { 
      // for connection string: 
      // Endpoint=sb://[[yournamespace]].servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=[[key]] 

      var tp = TokenProvider.CreateSharedAccessSignatureTokenProvider("RootManageSharedAccessKey", "[[key]]"); 
      var token = tp.GetWebTokenAsync("http://[[yournamespace]].servicebus.windows.net/", string.Empty, true, TimeSpan.FromHours(1)) 
       .GetAwaiter() 
       .GetResult(); 
      Console.WriteLine(token); 
     } 
    } 

Использование фрагмента выше в консольное приложение (с использованием пакета SB NuGet), вы получите требуемую строку токена для ввода в HTTP-заголовок.

Когда я использую этот маркер в HTTP «Authorization:» заголовок с одним из моих пространств имен в композиторе Фиддлерз для HTTPS GET на корне, я получаю

<feed xmlns="http://www.w3.org/2005/Atom"> 
    <title type="text">Publicly Listed Services</title> 
    <subtitle type="text">This is the list of publicly-listed services currently available.</subtitle> 
    <id>uuid:f1ccc436-e5bb-47f7-b780-a7d06e942d51;id=843</id> 
    <updated>2016-01-05T12:30:33Z</updated> 
    <generator>Service Bus 1.1</generator> 
    <entry> 
    <id>uuid:f1ccc436-e5bb-47f7-b780-a7d06e942d51;id=844</id> 
    <title type="text">democtrl</title> 
    <updated>2016-01-05T12:30:34Z</updated> 
    <link rel="alternate" href="http://clemensveu.servicebus.windows.net/democtrl"/> 
    </entry> 
    <entry> 
    <id>uuid:f1ccc436-e5bb-47f7-b780-a7d06e942d51;id=845</id> 
    <title type="text">hshsjsjshjshsjhsjhs</title> 
    <updated>2016-01-05T12:30:34Z</updated> 
    <link rel="alternate" href="http://clemensveu.servicebus.windows.net/hshsjsjshjshsjhsjhs"/> 
    </entry> 
    <entry> 
    <id>uuid:f1ccc436-e5bb-47f7-b780-a7d06e942d51;id=846</id> 
    <title type="text">iotev2</title> 
    <updated>2016-01-05T12:30:34Z</updated> 
    <link rel="alternate" href="http://clemensveu.servicebus.windows.net/iotev2"/> 
    </entry> 
    <entry> 
    <id>uuid:f1ccc436-e5bb-47f7-b780-a7d06e942d51;id=847</id> 
    <title type="text">samplequeue</title> 
    <updated>2016-01-05T12:30:34Z</updated> 
    <link rel="alternate" href="http://clemensveu.servicebus.windows.net/samplequeue"/> 
    </entry> 
    <entry> 
    <id>uuid:f1ccc436-e5bb-47f7-b780-a7d06e942d51;id=848</id> 
    <title type="text">stelemetryqueue</title> 
    <updated>2016-01-05T12:30:34Z</updated> 
    <link rel="alternate" href="http://clemensveu.servicebus.windows.net/stelemetryqueue"/> 
    </entry> 
    <entry> 
    <id>uuid:f1ccc436-e5bb-47f7-b780-a7d06e942d51;id=849</id> 
    <title type="text">testqueue</title> 
    <updated>2016-01-05T12:30:34Z</updated> 
    <link rel="alternate" href="http://clemensveu.servicebus.windows.net/testqueue"/> 
    </entry> 
</feed> 

и при переходе по ссылке на testqueue (но с HTTPS для защиты токена), я получаю

<entry xmlns="http://www.w3.org/2005/Atom"> 
    <id>https://clemensveu.servicebus.windows.net/testqueue</id> 
    <title type="text">testqueue</title> 
    <published>2015-09-07T09:33:46Z</published> 
    <updated>2015-09-07T09:34:17Z</updated> 
    <author> 
    <name>clemensveu</name> 
    </author> 
    <link rel="self" href="https://clemensveu.servicebus.windows.net/testqueue"/> 
    <content type="application/xml"> 
    <QueueDescription xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
     <LockDuration>PT30S</LockDuration> 
     <MaxSizeInMegabytes>16384</MaxSizeInMegabytes> 
     <RequiresDuplicateDetection>false</RequiresDuplicateDetection> 
     <RequiresSession>false</RequiresSession> 
     <DefaultMessageTimeToLive>P14D</DefaultMessageTimeToLive> 
     <DeadLetteringOnMessageExpiration>false</DeadLetteringOnMessageExpiration> 
     <DuplicateDetectionHistoryTimeWindow>PT10M</DuplicateDetectionHistoryTimeWindow> 
     <MaxDeliveryCount>10</MaxDeliveryCount> 
     <EnableBatchedOperations>true</EnableBatchedOperations> 
     <SizeInBytes>1550</SizeInBytes> 
     <MessageCount>5</MessageCount> 
    </QueueDescription> 
    </content> 
</entry> 
+0

Отлично Ответ, спасибо. Как можно добавить этот канал в устройство чтения RSS/Atom? – SmashMirrorCardboardFace

+0

Это зависит от того, что вы имеете в виду под «RSS/Atom reader». Вы имеете в виду абстракцию структуры, такую ​​как API синдикации WCF? –

+0

Что-то вроде http://feedreader.com/ - Я, вероятно, что-то потерял в своем понимании – SmashMirrorCardboardFace