首页 > 解决方案 > 优先使用 Terraform 进行 AWS 更改

问题描述

我有这个简单的 Cloudfront 配置:

resource "aws_cloudfront_distribution" "s3_distribution" {
  ...
  origin {
    domain_name = <bucket domain name>
    origin_id   = <origin id>
    origin_path = /path/1
  }
  ...
}

如果我运行terraform apply它,它将按应有的方式创建 CloudFront 分配。但是在我创建它之后,持续部署管道正在将其origin_path从./path/1/path/<another number>

如果我对此发行版进行任何更改并使用 更新它terraform apply,则会origin_path返回/path/1并破坏环境。有没有办法避免这种情况?

例如:

resource "aws_cloudfront_distribution" "s3_distribution" {
  ...
  origin {
    domain_name = <bucket domain name>
    origin_id   = <origin id>
    origin_path = creationOnly("/path/1")
  }
  ...
}

并且只有在创建资源时creationOnly才会更新。origin_path

编辑:

感谢 Helder 和 Mark 在评论中我发现生命周期将是一个可能的解决方案。可悲的是,即使我在示例中使用了资源,但真正的问题涉及模块。

标签: terraformterraform-provider-aws

解决方案


推荐阅读