私は多層プロジェクトに携わっています。その一部は、サードパーティ システムからの「イベント」のストリームを消費しています。ベンダーは Azure Service Bus トピックを介してこれらを公開しています - バスを提供、制御、および管理します。URI、TopicName、およびサブスクリプションの詳細が提供されるだけです。
ServiceBusTrigger
私たちのアプローチは、SDK で提供されている を使用して新しいメッセージのリッスンを処理し、システムへの処理をトリガーする Web ジョブをまとめることでした。ただし、ジョブがトピックからの読み取りに継続的に失敗するため、障害にぶつかったようです。ジョブはあいまいで失敗しますTimeout Exception
:
Unhandled Exception: System.TimeoutException: The timeout elapsed upon attempting to obtain a token while accessing 'https://****-sb.accesscontrol.windows.net/WRAPv0.9/'.
---> System.IdentityModel.Tokens.SecurityTokenException: The token provider was unable to provide a security token while accessing 'https://****-sb.accesscontrol.windows.net/WRAPv0.9/'.
Token provider returned message: 'The operation has timed out'.
しかし、さらに下のトレースには次のものが含まれます。
[ERR] at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
[ERR] at Microsoft.ServiceBus.NamespaceManager.OnEndTopicExists(IAsyncResult result)
[ERR] at Microsoft.ServiceBus.NamespaceManager.EndTopicExists(IAsyncResult result)
ベンダーはその後、サブスクリプションがトピックに対して持っている唯一の許可/主張が以下のものであることを確認しました。Listen
の許可要件を確認できる人はいServiceBusTrigger
ますか?
そして+1として、何らかの理由でより多くが必要であるListen
(つまり、必要があるManage
)という前提で、誰かが別のアプローチを提案したいと思いますか? WebJob インフラストラクチャを失うのは残念です (プロジェクトには既に 3 つのジョブがあります)。特に、トピックからのメッセージの非同期処理や同時処理などの機能が失われています。