我在 Azure 中的串联 .json 未按预期工作
My concatenation in Azure .json is not working as desired
我正在尝试部署一个负载均衡器模板,我在其中输入各种名称以形成串联。这是为了使参数模板影响后端地址池和其他输出的命名。我当前的连接代码是这样的:
"[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 指南,但我似乎无法弄清楚哪里出错了。
谁能看到我的错误?
好吧,原来我的括号放错了地方。正确的语法是这样的:
"[concat(resourceId('Microsoft.Network/loadBalancers/', variables('loadBalancerName')), '/frontendIpConfigurations/', variables('subnet1name'), '-FrontEnd')]"
删除 concat() 并只使用 resourceID 函数,例如
[resourceId('Microsoft.Network/loadBalancers/frontendIpConfigurations', variables('loadBalancerName'), concat(variables('subnet1name'), '-FrontEnd'))]
了解 function/pattern 会对您开始使用其他组或订阅中的资源有很大帮助。
我正在尝试部署一个负载均衡器模板,我在其中输入各种名称以形成串联。这是为了使参数模板影响后端地址池和其他输出的命名。我当前的连接代码是这样的:
"[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 指南,但我似乎无法弄清楚哪里出错了。
谁能看到我的错误?
好吧,原来我的括号放错了地方。正确的语法是这样的:
"[concat(resourceId('Microsoft.Network/loadBalancers/', variables('loadBalancerName')), '/frontendIpConfigurations/', variables('subnet1name'), '-FrontEnd')]"
删除 concat() 并只使用 resourceID 函数,例如
[resourceId('Microsoft.Network/loadBalancers/frontendIpConfigurations', variables('loadBalancerName'), concat(variables('subnet1name'), '-FrontEnd'))]
了解 function/pattern 会对您开始使用其他组或订阅中的资源有很大帮助。