You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform中使用count/for_each时如何配置depends_on

Terraform中使用count/for_each创建资源时的depends_on用法

当通过count或for_each创建多实例资源时,depends_on的使用分两种场景:依赖所有实例,或者依赖特定实例,具体写法如下:

1. 依赖所有实例

如果需要让目标资源等待该多实例资源的全部实例创建完成,直接使用资源名称即可,Terraform会自动识别这是一个资源集合,等待所有实例就绪:

resource "azurerm_storage_container" "cont1" {
  # 其他配置项
  depends_on = [
    azurerm_storage_account.storageAccount
  ]
}

resource "azurerm_storage_account" "storageAccount" {
  count                   = 3
  name                    = "storageAccountName-${count.index}"
  resource_group_name     = "rg-demo"
  location                = "centralus"
  account_tier            = "Standard"
  account_replication_type= "LRS"
}

2. 依赖特定实例

如果只需要依赖多实例资源中的某一个特定实例,要根据创建方式(count/for_each)来精准引用:

针对count创建的资源

count是基于索引生成实例,索引从0开始。比如你要依赖名称为storageAccountName-2的实例(对应count.index=2),直接通过索引下标引用即可:

resource "azurerm_storage_container" "cont1" {
  # 其他配置项
  depends_on = [
    azurerm_storage_account.storageAccount[2]
  ]
}

resource "azurerm_storage_account" "storageAccount" {
  count                   = 3
  name                    = "storageAccountName-${count.index}"
  resource_group_name     = "rg-demo"
  location                = "centralus"
  account_tier            = "Standard"
  account_replication_type= "LRS"
}

针对for_each创建的资源

如果是用for_each(基于集合或映射)创建的资源,需要通过for_each的键来引用特定实例。比如假设存储账户基于字符串集合创建:

resource "azurerm_storage_account" "storageAccount" {
  for_each                = toset(["acc0", "acc1", "acc2"])
  name                    = "storageAccountName-${each.value}"
  resource_group_name     = "rg-demo"
  location                = "centralus"
  account_tier            = "Standard"
  account_replication_type= "LRS"
}

若要依赖storageAccountName-acc2这个实例,就用对应的键引用:

resource "azurerm_storage_container" "cont1" {
  # 其他配置项
  depends_on = [
    azurerm_storage_account.storageAccount["acc2"]
  ]
}

内容的提问来源于stack exchange,提问作者user20641787

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 00:25:28