サブモジュールを作成するモジュールがあり、各サブモジュールには異なる 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.
エラーを修正するにはどうすればよいですか?