amazon-web-services - terraform中的depends_on可以设置为文件路径吗?
问题描述
我正在尝试分解我的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]
}
并且您决定将它们拆分为以下文件
文件1.tf
resource "some_resource" "resource_1" {
# ...
}
文件2.tf
resource "some_resource" "resource_2" {
# ...
depends_on = [some_resource.resource_1]
}
如果terraform
在同一目录中运行,它将评估与main.tf
多文件场景完全相同的场景。
推荐阅读
- ruby-on-rails - 如何在 CoffeeScript 和 Rails 6 中调用函数?
- pip - 如何安装 Openyxl
- xamarin.forms - 尝试在 iOS for Mac 上构建 Xamarin 表单时出错
- java - 如果 set_posting 日期的长度为零,如 java 中的 00-00-0000,我想为它设置一个默认值
- java - java.lang.NoClassDefFoundError: org/bson/types/ObjectId
- c++ - 奇怪的多定义链接错误与标头保护
- laravel - 如何比较多个日期时间并在一个视图中显示它们?
- java - 根据 Apache Camel 中的数据生成多个输出 xml 文件
- laravel - centos 7 laravel 日志 - 每天创建新的日志文件 instorage 由 root 拥有需要 apache 成为日志文件的所有者
- ios - 为什么UIView有自己的CGContext,而CALayer没有?