0

我正在尝试部署一个负载均衡器模板,在该模板中我以各种名称移植以形成串联。这样参数模板会影响后端地址池和其他输出的命名。我当前的连接代码是这样的:

"[concat(resourceId('Microsoft.Network/loadBalancers/', variables('loadBalancerName'), '/frontendIpConfigurations/', variables('subnet1name'), '-FrontEnd'))]"

但是,当我尝试在 Jenkins 中运行它时,我收到以下错误消息:

"Unable to process template language expressions for resource '/subscriptions/****/resourceGroups/test-networks-hub-rg/providers/Microsoft.Network/loadBalancers/test-firewall-lb' at line '1' and column '2581'. 'Unable to evaluate template language function 'resourceId': function requires exactly one multi-segmented argument which must be resource type including resource provider namespace. Current function arguments 'Microsoft.Network/loadBalancers/,test-firewall-lb,/frontendIpConfigurations/,test-firewall-subnet,-FrontEnd'

似乎无法识别 resourceId,因为它没有正确连接。我检查了 Microsoft 指南,但我似乎无法弄清楚我哪里出错了。

谁能看到我的错误?

4

2 回答 2

0

好吧,原来我只是在错误的地方放了一个支架。正确的语法是这样的:

"[concat(resourceId('Microsoft.Network/loadBalancers/', variables('loadBalancerName')), '/frontendIpConfigurations/', variables('subnet1name'), '-FrontEnd')]"
于 2019-07-02T13:47:06.923 回答
0

删除 concat() 并仅使用 resourceID 函数,例如

[resourceId('Microsoft.Network/loadBalancers/frontendIpConfigurations', variables('loadBalancerName'), concat(variables('subnet1name'), '-FrontEnd'))]

当您开始使用其他组或订阅中的资源时,学习该功能/模式将有很大帮助。

于 2019-07-02T23:00:41.880 回答