如何通过代码获取当前的 Azure 服务总线命名空间连接字符串

How to get current Azure Service Bus Namespace Connection String via code

是否可以通过提供命名空间名称来获取 Azure 服务总线命名空间的连接字符串?

我目前在配置中硬编码了连接字符串,但这会在部署到下一个环境后发生变化。我知道命名空间是什么,但无法访问门户以检索其连接字符串。

有人知道这是否可行,或者是否有针对这种情况的更好方法?

无法仅从命名空间名称派生 Azure 服务总线命名空间连接字符串。这将是完全不安全的,任何人都可以访问任何名称空间。有关于秘密管理的常见做法。我将列出其中的一些,您必须研究并了解哪些适用于您的场景。

在 ARM 模板中,您可以使用以下代码从服务总线命名空间检索连接字符串


"connectionString": "[listKeys(resourceId('Microsoft.ServiceBus/namespaces/authorizationRules', parameters('ServiceBusNamespace_name'), 'RootManageSharedAccessKey'), '2017-04-01').primaryConnectionString]"