问题描述
我正在尝试使用 Get-AzureRmServiceBusNamespace
模块通过 -Name
参数检索特定的服务总线命名空间。
此 cmdlet 的 documentation 表示此参数可用于通过资源组检索特定命名空间或命名空间组。当我尝试这样做时,响应包括 all 命名空间。我还尝试使用此参数的别名 (NamespaceName
)。有趣的是,-ResourceGroupName
参数确实缩小了结果的范围。我可以通过在 Where-Object
属性上使用过滤器将输出传送到 Name
cmdlet 来检索特定的 ServiceBus,但这感觉很笨拙。
知道我做错了什么吗?
解决方法
当您传递不同的参数时,此命令本质上会调用不同的 REST API。
如果不带任何参数(即 Get-AzureRmServiceBusNamespace
)直接运行它,它将列出订阅中的所有命名空间,即调用 API Namespaces - List
。
如果传递资源组名称,它将列出资源组中的所有命名空间,即调用 Namespaces - List By Resource Group
。
所以在你的情况下,如果你想获得一个特定的命名空间,你需要传递资源组和命名空间名称,即调用 Namespaces - Get
。
Get-AzureRmServiceBusNamespace -ResourceGroup <resourceGroupName> -NamespaceName <namespaceName>
此外,旧的 AzureRM
模块已被弃用,我建议您改用新的 Az
命令 Get-AzServiceBusNamespace
。