0

サブモジュールを作成するモジュールがあり、各サブモジュールには異なる response_page_path に到達する custom_error_response があります。

メインモジュールに追加しました。

 custom_error_response = [
    {
      error_code            = "403"
      error_caching_min_ttl = "30"
      response_code         = "200"
      response_page_path    = "/${var.default_root_object}"
    },
  ]

変数 default_root_object は次のとおりです。

variable "default_root_object" {
  description = "Default root object at origin for CloudFront distribution"
}

サブモジュールでは、variables.tf に以下を追加しました。

variable "custom_error_response" {
  description = "(Optional) - List of one or more custom error response element maps"
  type        = "list"
  default     = []
}

各サブモジュールの main.tf で、次のように custom_error_response も定義しました。

    dynamic "custom_error_response" {
    for_each = var.custom_error_response
    content {
      error_caching_min_ttl = lookup(custom_error_response.value, "error_caching_min_ttl", null)
      error_code            = custom_error_response.value.error_code
      response_code         = lookup(custom_error_response.value, "response_code", null)
      response_page_path    = lookup(custom_error_response.value, "response_page_path", null)
    }
  } 

terraform init を実行しているときは問題ありませんが、terraform plan を実行すると、作成した 8 つのサブモジュールに対して同じエラーが 8 回発生します。

Error: Invalid value for module argument

  on portal_distribution/main.tf line 32, in module "**mainmodule**":
  32:   custom_error_response = [
  33:     {
  34:       error_code            = "403"
  35:       error_caching_min_ttl = "30"
  36:       response_code         = "200"
  37:       response_page_path    = "/${var.default_root_object}"
  38:     },
  39:   ]

The given value is not suitable for child module variable
"custom_error_response" defined at
.terraform/modules/**submodule**_portal.**mainmodule**/modules/aws-terraform-cloudfront_s3_origin/variables.tf:302,1-33:
element 0: string required.

エラーを修正するにはどうすればよいですか?

4

1 に答える 1