azure 二头肌-无法通过列表键从通知集线器获取连接字符串错误BCP 182

owfi6suc  于 2023-02-09  发布在  其他
关注(0)|答案(1)|浏览(107)

我正在尝试获取通知中心连接字符串的数组,但总是收到来自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...等)。请任何人都能帮助我。提前感谢

i1icjdpr

i1icjdpr1#

在您的案例中替换变量的bicep逻辑不适用于循环。
GitHub上有一个未决问题:Variable substitution logic does not work for variables with loop expressions

相关问题