微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Terraform 在创建后修改资源

如何解决Terraform 在创建后修改资源

我正在使用 cloudfront 创建一个 terraform 分配,但出现此错误

创建 CloudFront 分配时出错:CNAMEAlreadyExists:为分配指定的一个或多个别名包含指向另一个 CloudFront 分配的错误配置的 DNS 记录。您必须更新 DNS 记录才能更正问题。

但是,一旦我创建了 cloudfront “没有任何替代名称terraform 语言中的别名)”,一旦创建并尝试编辑它并添加 alternative names,它就不会给出上述错误

所以我想先创建 cloudfront,然后创建其他资源,然后在一段时间后使用 aliases

更新创建的 cloudfront

这可能吗?解决方法是什么?为什么第一次失败(使用相同的替代名称)但一旦创建并再次添加相同的替代域,它就可以工作?

这是我的 cloudfront.tf

resource "aws_cloudfront_distribution" "aws_cloudfront_distribution" {
  # aliases = var.CF_ALIASES

  default_cache_behavior {
    allowed_methods = ["GET","HEAD"]
    cached_methods  = ["GET","HEAD"]
    compress        = "true"
    default_ttl     = "0"

    forwarded_values {
      cookies {
        forward = "none"
      }

      query_string = "false"
    }

    # lambda_function_association {
    #   event_type   = "origin-response"
    #   include_body = "false"
    #   lambda_arn   = var.CF_LAMBDA_ARN
    # }

    max_ttl                = "0"
    min_ttl                = "0"
    smooth_streaming       = "false"
    target_origin_id       = var.CF_BUCKET_ORIGIN_ID
    viewer_protocol_policy = "redirect-to-https"
  }

  enabled         = "true"
  http_version    = "http2"
  is_ipv6_enabled = "true"

  origin {
    custom_origin_config {
      http_port                = "80"
      https_port               = "443"
      origin_keepalive_timeout = "5"
      origin_protocol_policy   = "http-only"
      origin_read_timeout      = "30"
      origin_ssl_protocols     = ["TLSv1","TLSv1.1","TLSv1.2"]
    }

    domain_name = var.CF_BUCKET_DOMAIN_NAME
    origin_id   = var.CF_BUCKET_ORIGIN_ID
  }

  price_class = "PriceClass_All"

  restrictions {
    geo_restriction {
      restriction_type = "none"
    }
  }

  retain_on_delete = "false"

  tags = var.CF_TAGS_LIST

  viewer_certificate {
    acm_certificate_arn            = var.CF_CERTFICATE_ARN
    cloudfront_default_certificate = "false"
    minimum_protocol_version       = "TLSv1.2_2018"
    ssl_support_method             = "sni-only"
  }

}

我如何在 terraform 中使用替代名称更新相同的 cloudfront?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?