如何解决Terraform 在创建后修改资源
我正在使用 cloudfront
创建一个 terraform
分配,但出现此错误:
创建 CloudFront 分配时出错:CNAMEAlreadyExists:为分配指定的一个或多个别名包含指向另一个 CloudFront 分配的错误配置的 DNS 记录。您必须更新 DNS 记录才能更正问题。
但是,一旦我创建了 cloudfront “没有任何替代名称(terraform 语言中的别名)”,一旦创建并尝试编辑它并添加 alternative names
,它就不会给出上述错误。
所以我想先创建 cloudfront,然后创建其他资源,然后在一段时间后使用 aliases
这可能吗?解决方法是什么?为什么第一次失败(使用相同的替代名称)但一旦创建并再次添加相同的替代域,它就可以工作?
这是我的 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 举报,一经查实,本站将立刻删除。