terraform中的depends_on可以设置为文件路径吗?

Can depends_on in terraform be set to a file path?

我正在尝试分解我的 main.tf 文件。因此,我通过 terraform 设置了 aws config,创建了配置记录器,并将交付通道设置为在同一 main.tf 文件中创建的 s3 存储桶。现在对于 AWS 配置规则,我创建了一个单独的文件,即 config-rule.tf。众所周知,我们创建的每个 aws_config_config_rule 都有一个 depends_on 子句,我们在其中调用依赖资源,在本例中为 aws_config_configuration_recorder。所以我的问题是我可以将 depends_on 子句插入到类似 :

的内容中吗
    resource "aws_config_config_rule" "s3_bucket_server_side_encryption_enabled" {
    name = "s3_bucket_server_side_encryption_enabled"

    source {
    owner             = "AWS"
    source_identifier = "S3_BUCKET_SERVER_SIDE_ENCRYPTION_ENABLED"
    }

    depends_on = ["${file("aws-config-setup.tf")}"]
    }

考虑将我的 aws 配置设置从我的 main.tf 文件移动到一个名为 aws-config-setup.tf.

的新文件

如果我没看错你的问题,假设你没有将代码移动到它自己的模块(一个单独的目录),你不需要做任何更改就可以工作。

当 terraform 在特定目录中执行时,它会考虑所有文件,基本上将它们全部视为一个 terraform 文件。

所以,一般来说,如果您有一个 main.tf 如下所示

resource "some_resource" "resource_1" {
  # ...
}

resource "some_resource" "resource_2" {
  # ...

  depends_on = [some_resource.resource_1]
}

并且您决定将它们拆分为以下文件

file1.tf

resource "some_resource" "resource_1" {
  # ...
}

file2.tf

resource "some_resource" "resource_2" {
  # ...

  depends_on = [some_resource.resource_1]
}

如果terraform是运行在同一目录下,它会评估main.tf场景与多文件场景完全相同。