【问题标题】:Error creating CloudFront Distribution: NoSuchOrigin:创建 CloudFront 分配时出错:NoSuchOrigin:
【发布时间】:2019-09-22 03:24:08
【问题描述】:

我正在尝试使用 Terraform 部署 Cloudfront 发行版,但在指定 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 是 route53 记录,local.origin_id 是唯一 ID。

执行 terraform apply 时出现此错误:

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. 它是。

【问题讨论】:

  • 什么是domain_name?是 S3 存储桶吗?
  • 你是否在缓存行为中定义了相同的originID?
  • @StephenG 不,这是一条 route53 记录

标签: amazon-web-services terraform terraform-provider-aws


【解决方案1】:

错误与缓存行为有关。 您需要确保 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}"

...

【讨论】:

    猜你喜欢
    • 2019-10-03
    • 2021-10-02
    • 2019-07-31
    • 2017-10-22
    • 2019-10-23
    • 2017-12-09
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    相关资源
    最近更新 更多