问题描述
我对我的 AWS EC2 user_data bootstrap bash 脚本做了一个小改动(仅限评论)。 Terraform 已检测到这一点,现在想用新的 EC2 替换 EC2。但这是一项实时服务,我宁愿不必将其关闭、备份所有数据、构建新服务器,然后恢复数据 - 只是为了让 terraform 开心!
有没有更简单的方法来解决这个问题,通过某种方式将代码/状态文件/aws 放在一起,这样我就可以使用 terraform 对环境进行其他更改,而不必担心会炸毁这个服务器?
>我什至尝试从 AWS 控制台编辑用户数据,以使其符合我认为应该进行的更改,但这并没有奏效。
目前我使用 -target
进行特定更改,但从长远来看这可能不可持续。
解决方法
您可以使用 user_data
元参数指示提供程序忽略对该资源的 lifecycle
参数的更改:
resource "aws_instance" "this" {
# ...
lifecycle {
ignore_changes = [user_data]
}
}