我的二头肌可以在for loop中创建应用程序。
var App = {
(...)
}
module app 'app:latest' = [for i in range(0, length(App.appServices)): {
name: 'app${i}'
params: {
(...)
}
}]
我想把它和应用洞察联系起来,我发现我可以使用引用来解析APPLICATIONINSIGHTS_CONNECTION_STRING:
siteConfig: {
linuxFxVersion: 'NODE|14-lts'
appSettings: [
{
name: 'APPLICATIONINSIGHTS_CONNECTION_STRING'
value: reference(resourceId(resourceGroup().name,'Microsoft.insights/components/', 'app1'), '2020-02-02').ConnectionString
}
不幸的是这个抛出错误:
Error BCP178: This expression is being used in the for-expression, which requires a value that can be calculated at the start of the deployment. You are referencing a variable which cannot be calculated at the start ("App" -> "applicationinsights_connection_string" -> "reference").
INFO: Command ran in 17.855 seconds (init: 0.252, invoke: 17.602)
我如何让它工作?我如何强制二头肌首先解决它?有没有其他方法将用for循环创建的应用程序与应用程序洞察联系起来?
上面的P.S代码在没有for循环的情况下可以正常工作。
1条答案
按热度按时间xu3bshqb1#
错误BCP 178:此表达式用于for-expression,它需要一个可以在部署开始时计算的值。
此错误意味着必须在循环开始前给定引用值。因此,请在循环外生成连接字符串数组,然后在循环内引用该数组。
在模块声明外使用for循环创建一个连接字符串数组,然后在创建app模块的循环内引用该数组,并将相应的连接字符串赋给
params. appInsightsConnectionString
属性。我进行了上述更改,运行了取自MSDoc的示例模板,并成功地部署了它。
Refer此模板用于将应用服务与应用洞察相连接。