Условный настраиваемый ответ на ошибку CloudFront в Terraform
Я использую TF 0.11.14 для управления распределениями Cloud Front в нескольких средах для наших приложений.
Я хотел бы внести изменения в определенное распределение CF и добавить настраиваемый ответ об ошибке только в том случае, если данная переменная существует в файле variables.tf
Мне интересно, как я могу это сделать?
Ниже представлена переменная, которую я определил в моем файле variables.tf.
variable "spa" {
type = "string"
default = ""
description = "if spa is enable, Cloudfront will have the routing of the custom pages/endpoints in client by modifying the Error Pages"
}
Ниже приведены конфигурации TF, которые я пробовал.
Я попытался установить счетчик для включения / отключения ресурса только для custom_error_response, однако это не удается со следующей ошибкой.
custom_error_response = {
count = "${var.spa == "enable" ?1:0 }"
error_caching_min_ttl = 0
error_code = 404
response_code = 200
response_page_path = "index.html"
}
}
module.nightly-client.aws_cloudfront_distribution.cf: custom_error_response.0: неверный или неизвестный ключ: count
Я также пробовал следующий способ, включив все подресурсы custom_error_response
custom_error_response = {
error_caching_min_ttl = "${var.spa == "enable" ? 0:0 }"
error_code = "${var.spa == "enable"? 404:0}"
response_code = "${var.spa == "enable" ? 200:0}"
response_page_path = "${var.spa == "enable" ? "/index.html":""}"
}
}
Вышеуказанное не работает и выдает ошибки, потому что http-код для ложной оценки недействителен.
- aws_cloudfront_distribution.cf: ошибка обновления CloudFront Distribution (E2WYMYBXQLZC0Z): InvalidArgument: параметр ErrorCode недействителен. код состояния: 400, идентификатор запроса: 61cabc92-6aee-44c8-ba4d-e7ff619682ac