我正在尝试分解我的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
方案。