如何通过代码获取当前的Azure Service Bus命名空间连接字符串

时间:2019-05-02 14:49:10

标签: .net azure asp.net-core azureservicebus azure-servicebus-queues

是否可以通过仅提供名称空间名称来获取Azure Service Bus命名空间的连接字符串?

我目前在配置中已经硬编码了连接字符串,但是在部署到下一个环境后,它将更改。我知道名称空间将是什么,但将无法访问门户以检索其连接字符串。

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

2 个答案:

答案 0 :(得分:1)

不可能仅从名称空间名称派生Azure Service Bus名称空间连接字符串。这将是完全不安全的,任何人都可以访问任何名称空间。关于机密管理,有一些常见的做法。我将列出其中一些,然后您必须进行研究,看看哪种方法适合您的情况。

  • 环境变量-该值可以随环境而变化,但是代码使用相同的环境变量来读取不同环境中的连接字符串。
  • Secret manager
  • Azure App Configuration Service-处于预览状态,但稳定且效果很好

答案 1 :(得分:1)

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


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