如何检查另一个地区的Azure服务总线是否正在使用Azure函数工作?



我正在使用azure函数创建一个ping函数,该函数需要检查另一个区域的服务总线是否正在运行,以便它可以更新整个系统(两个区域)的状态。检查其他服务总线中其他服务总线主题的状态的最佳方法是什么?

我发现这段代码我可以适应GetTopic()而不是Queue:

string connectionString = "connection string";
var namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);
var queueDescription = namespaceManager.GetQueue("queue name");
var status = queueDescription.Status;

然而,建议这个库(WindowsAzure.ServiceBus)已更新为Azure.Messaging.ServiceBus,我无法在较新的库中找到类似的方法来做到这一点。

请给我指一下正确的方向。

ServiceBusAdministrationClient from Package 'Azure.Messaging.ServiceBus v7.8.1'可以使用。

ServiceBusAdministrationClient。GetQueueAsync返回QueueProperties,包括Status:

https://learn.microsoft.com/en-us/dotnet/api/azure.messaging.servicebus.administration.queueproperties.status?view=azure-dotnet azure-messaging-servicebus-administration-queueproperties-status

public Azure.Messaging.ServiceBus.Administration.EntityStatus Status { get; set; }

队列的当前状态(Enabled/Disabled)。

ServiceBusAdministrationClient serviceBusAdministrationClient = new ServiceBusAdministrationClient();
var status = await serviceBusAdministrationClient.GetQueueAsync("myQueue").Status;