Ошибка создания дистрибутива CloudFront: NoSuchOrigin: - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь развернуть дистрибутив Cloudfront с Terraform и получаю сообщение об ошибке при указании origin_id

Cloudfront указывает на балансировщик нагрузки через поиск Route53.

resource "aws_cloudfront_distribution" "my-app" {
  origin {
    custom_origin_config {
      http_port              = 443
      https_port             = 443
      origin_protocol_policy = "https-only"
      origin_ssl_protocols   = ["TLSv1.2"]
    }

    domain_name = "${var.domain_name}"
    origin_id   = "Custom-${var.domain_name}"
  }

...

  default_cache_behavior {
    allowed_methods  = ["GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT", "DELETE"]
    cached_methods   = ["GET", "HEAD"]
    target_origin_id = "${local.origin_id}"

...

, где var.domain_name - запись маршрута53, а local.origin_id - уникальный идентификатор.

При выполнении терраформы я получаю эту ошибку:

aws_cloudfront_distribution.my-app: error creating CloudFront Distribution: NoSuchOrigin: One or more of your origins or origin groups do not exist.

Документация гласит: origin_id (Required) - A unique identifier for the origin. что это такое.

1 Ответ

0 голосов
/ 07 мая 2019

Ошибка связана с поведением кеша. Вы должны убедиться, что target_origin_id относится к origin_id в поведении кэша.

Вот так:

resource "aws_cloudfront_distribution" "my-app" {
  origin {
    custom_origin_config {
      http_port              = 443
      https_port             = 443
      origin_protocol_policy = "https-only"
      origin_ssl_protocols   = ["TLSv1.2"]
    }

    domain_name = "${var.domain_name}"
    origin_id   = "Custom-${var.domain_name}"
  }

...

  default_cache_behavior {
    allowed_methods  = ["GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT", "DELETE"]
    cached_methods   = ["GET", "HEAD"]
    target_origin_id = "Custom-${var.domain_name}"

...
...