我正在尝试获取通知中心连接字符串的数组,但总是收到来自listKeys表达式的错误消息
BCP 182::此表达式正在变量“notificationHubConfig”的for-body中使用,该变量需要可以在部署开始时计算的值
下面是我的代码:首先,在我的环境yaml文件中有一个数组notificationHubs
notificationhubs:
'["tenantId1:nameSpaceNotificationHub1:Hubname1","tenantId2:nameSpaceNotificationHub2:Hubname2"]'
在模块bicep文件中。首先我获得通知中心的命名空间。它们都是现有资源。然后我通过listKeys函数创建通知中心连接字符串的数组。由于listKeys表达式,错误发生。
resource namespace 'Microsoft.NotificationHubs/namespaces@2017-04-01' existing = [for i in range(0, length(notificationhubs)): {
name: '${split(notificationhubs[i], ':')[1]}'
scope: resourceGroup('${notificationHubResourceGroupName}')
}]
var notificationHubConfig = [for i in range(0, length(notificationhubs)): {
name: notificationhubs[i]
value: '${listKeys('${namespace[i].id}/AuthorizationRules/RootManageSharedAccessKey', namespace[i].apiVersion).primaryConnectionString}'
}]
我已经测试了表达式的所有输入,看起来都是正确的(例如namespace[i].id、namespace[i].apiVersion...等)。请任何人都能帮助我。提前感谢
1条答案
按热度按时间i1icjdpr1#
在您的案例中替换变量的bicep逻辑不适用于循环。
GitHub上有一个未决问题:Variable substitution logic does not work for variables with loop expressions