我正在尝试使用同级目录中的特定代码,但这样做时遇到了一些麻烦。例如,请参阅下文了解我的文件的结构:
parents/
brother/
main.tf
outputs.tf
variables.tf
sister/
main.tf
outputs.tf
variables.tf
我想使用我在其中创建的定义,但我brother/main.tf
似乎sister/main.tf
无法找出正确的方法。我曾尝试使用模块:
module "brother" {
source = "../brother"
}
这样做行得通,但它没有。我能够导入和使用代码,但由于某种原因,terraform 正在使用新的模块名称(如果有任何意义的话)创建一堆具有新资源名称的其他资源。从本质上讲,它创建了所需的资源,但也创建了 100 多个其他不需要的资源。
通过将我想要使用的定义放在同一个sister
目录中,我可以很容易地让它工作,但这不是我想要构造我的文件的方式。这样做的正确方法是什么?如果我有一个在 中定义的 IAM 角色brother
,并且我想在 中引用它sister
,我该怎么做?提前致谢!
编辑:
当前代码:
姐姐/main.tf
resource "aws_config_config_rule" "test-rule" {
name = "test-rule"
source {
owner = "AWS"
source_identifier = "TEST"
}
depends_on = ["aws_config_configuration_recorder.config_configuration_recorder"]
}
resource "aws_config_configuration_recorder" "config_configuration_recorder" {
name = "config_configuration_recorder"
role_arn = "${var.test_assume_role_arn}"
}
兄弟/main.tf
resource "aws_iam_role" "test_assume_role" {
name = "${var.test_assume_role_name}"
path = "/"
assume_role_policy = <<POLICY
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "config.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
POLICY
}
所以基本上,我希望能够test_assume_role
在sister/main.tf
.