我需要根据条件将 depends_on 与多个资源绑定。
我使用 for_each 在资源级别为相同类型创建多个资源。
现在,我想使用基于其他属性值的 depends_on 属性来引用其他资源,如下所示
depends_on = each.value.backend_address_pool? [azurerm_lb.load_balancer, azurerm_lb_backend_address_pool.pool_address] :[ azurerm_lb.load_balancer ]
但 Terraform 不允许这样做,因为它需要静态列表。我试过:
我该如何表达这种依赖性?
您可能不需要必须表达这种依赖性,这是幸运的,因为Terraform的工作方式确保
depends_on
值必须是静态的(即在调用任何代码之前必须完全了解它们并且不能动态计算它们) 。这是因为 Terraform 要求在完成任何计算之前完全理解依赖树。
但是,
depends_on
通常是隐式的。如果 azurerm_lb_backend_address_pool.pool_address
为 true,则可能您正在引用 each.value.backend_address_pool
的资源中创建一些更改,并且可能您正在以任何方式引用资源块中的某处 azurerm_lb.load_balancer
。在这种情况下——太棒了!隐式依赖树是正确的。无需纠正。