terraform - 优先使用 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 在评论中我发现生命周期将是一个可能的解决方案。可悲的是,即使我在示例中使用了资源,但真正的问题涉及模块。
解决方案
推荐阅读
- pandas - 合并 DataFrames 导致 Int 值错误
- sass - 如何在 Visual Studio 中将 scss 文件从一个项目导入另一个项目
- python - pip list 显示已安装的模块,但仍然出现导入错误
- algorithm - 为什么加权联合查找算法中的操作的时间复杂度为 O(lgN)?
- arrays - 对象和数组的混合
- python - 如何覆盖 Flask Admin 上的删除逻辑?
- sorting - 如何根据结构的lastName变量对结构列表进行排序
- android - 如何从 JobIntentService 中删除重复的意图
- javascript - 从下拉列表中获取值并将其填充到另一个下拉列表以及输入字段
- jquery - jQuery Autocomplete 没有下拉建议