6

兄弟ディレクトリから特定のコードを使用しようとしていますが、そうするのに問題があります。例として、私のファイルがどのように構成されているかについては、以下を参照してください。

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基本的には、 でarnを使用できるようにしたいと考えていsister/main.tfます。

4

2 に答える 2