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
场景与多文件场景完全相同。
我正在尝试分解我的 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
场景与多文件场景完全相同。