Условное пользовательское сообщение об ошибке CloudFront в Terraform - PullRequest
0 голосов
/ 17 апреля 2020

Я использую TF 0.11.14 для управления Распределениями облачного фронта нескольких сред для наших приложений.

Я хотел бы внести изменения в определенное распределение 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, которые я пробовал.

I попытался установить счетчик, чтобы включить / отключить ресурс только для 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-e7ff619682a c
...