azureservicebus - 使用 Bicep 以编程方式获取服务总线 SharedAccessKey
问题描述
我正在使用二头肌来创建天蓝色资源。这些资源之一是服务总线,其定义如下:
resource service_bus 'Microsoft.ServiceBus/namespaces@2021-01-01-preview' = {
name: '${service_bus_name}${uniqueString(service_bus_name)}'
location: resourceGroup().location
sku: {
name: 'Standard'
tier: 'Standard'
}
properties: {}
}
然后我想在另一个资源中使用这个服务总线,这就是我目前拥有的连接字符串:
name: 'AzureWebJobsServiceBus'
value: 'Endpoint=sb://${service_bus.name}.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=<hardcoded_key>'
如何避免硬编码密钥。我尝试使用这样的 listKeys:
SharedAccessKey=${listKeys(service_bus.id, service_bus.apiVersion).value[0].primaryKey}
但这不起作用,并且对此的变体也失败了。
解决方案
如果我没记错的话,listKeys
Service Bus 的二头肌功能映射到Namespaces - Authorization Rules - List Keys
.
您将需要包含AuthorizationRules/{authorizationRuleName}
在您的listKeys
方法调用中。因为authorizationRuleName
您可以使用RootManageSharedAccessKey
.
我不确定这是否可行(我第一次玩二头肌),但你可以试一试:
var listKeysEndpoint = '${service_bus.id}/AuthorizationRules/RootManageSharedAccessKey'
SharedAccessKey=${listKeys(listKeysEndpoint, service_bus.apiVersion).primaryKey}
推荐阅读
- javascript - 将 JSON 导入 Google BigQuery 时出现重复对象的问题
- node.js - MongoDB 和 NodeJS 程序中的“MongoError:拓扑已关闭,请连接”
- html - 背景图像未从互联网加载
- highcharts - Highcharts如何将数据标签添加到系列的最后一个数据点
- php - 我在使用 PHP(一组十组,每组四个单选按钮)进行的测验中获取信息以提交到 PHP 测试结果页面时遇到问题
- sql - 有没有办法在 SQL 中按列名对两个日期列进行分类?
- spartacus-storefront - 从购物车移动到结帐时,第一次客人结帐时出现未找到的 API
- mysql - 仅显示价格满足条件的行(与最近的价格行相比)
- java - 一个线程中的 StackOverFlow 异常会导致应用程序停止吗?
- c# - 如何使网格固定,不受滚动影响?