首页 > 解决方案 > 检查 Azure 服务总线名称是否唯一

问题描述

我正在使用 Fluent SDK 创建 Azure 服务总线。我想给我的服务总线一个特定的名称,如果该名称不可用,则加一。我遇到的问题是我实际上不知道该名称在创建时是否不可用。

我正在使用它来创建服务总线:

var serviceBusNamespace = azure.ServiceBusNamespaces
                            .Define(serviceBusName)
                            .WithRegion(Region)
                            .WithExistingResourceGroup(resourceGroup)
                            .WithSku(NamespaceSku.Standard)
                            .Create();

如果我使用相同的 为两个不同的资源组运行此代码serviceBusName,我会在两个资源组中创建一个服务总线而不会出错。但是,当我转到 Azure 门户时,第一个服务总线可以正常打开,但在尝试打开第二个服务总线时出现“未找到”的错误消息。

我了解服务总线名称在整个 Azure 中必须是唯一的,但是

  1. 为什么 Fluent SDK 允许我创建第二个同名的服务总线?
  2. 在创建服务总线之前如何检查名称是否唯一?

我尝试 ping 服务总线 URL 以查看它是否存在。例如,我尝试了这个,对于一个类似的 URL serviceBusName.servicebus.windows.net,但是失败了。

标签: azureazureservicebusazure-fluent-api

解决方案


为什么 Fluent SDK 允许我创建第二个同名的服务总线?

您应该将此作为开发库的团队提出的问题。在这种情况下,Fluent SDK 由 .NET Libraries for Azure 团队制作。问题跟踪器可在此处获得。提出问题时,将其标记为Service Bus

在创建服务总线之前如何检查名称是否唯一?

供应新命名空间的操作可以在内部排队。因此,当您查询命名空间是否存在时,您可能会在后端启动它时得到否定响应。其中一个请求将成功,而另一个请求将失败。您需要在检查状态之后创建并查询结果。


推荐阅读