gpt4 book ai didi

Azure ARM 模板(取决于)

转载 作者:行者123 更新时间:2023-12-03 15:26:44 26 4
gpt4 key购买 nike

希望获得有关 dependsOn 的一些指导和解释。

我在模板中看到有两种在模板中提供依赖项的方法。

一种方法是提供resourceId,另一种方法是使用concat提供字符串值。我试图理解两者之间的区别。

示例

[concat('Microsoft.Network/networkInterfaces/', variables('networkInterfaceName'))]

并且在一些示例中,这是通过 resourceId 引用的:

[resourceId('Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]

我希望了解其中的差异,以及在哪些场景中我们应该使用 concat 来引用依赖项,以及在哪里可以使用 resourceID

最佳答案

使用resourceId与不使用resourceId(在dependsOn中)的真正区别在于:你所依赖的资源是否在同一个模板中?如果是这样,您只需拥有名称即可。例如,下面是一个负载均衡器,它依赖于在同一模板中创建的公共(public) IP 和 vNet:

  "apiVersion": "[variables('lbApiVersion')]",
"type": "Microsoft.Network/loadBalancers",
"name": "[variables('lbName1')]",
"location": "[variables('computeLocation')]",
"dependsOn": [
"[variables('lbIPName1')]",
"[variables('virtualNetworkName')]"
],
"properties": {
"frontendIPConfigurations": [
{
"name": "LoadBalancerIPConfig",
"properties": {
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses', variables('lbIPName1'))]"
}

如果您从模板外部引用资源,则需要resourceId。 dependentOn 不需要这样做,因为您只能依赖同一模板中的资源。在我的示例中需要的是 publicIPAddress id。该属性需要完整的资源 Id,这是 resourceId 函数提供的。所以问题就变成了,该属性是否需要完整的资源 ID?

关于Azure ARM 模板(取决于),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42685192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com