Terraform apply是否会销毁手动创建的资源?安全部署ALB变更咨询
核心结论
Terraform仅会管理其状态文件(state)中记录的资源以及配置文件里定义的资源,针对你的场景:
- 完全手动创建的资源(比如新增的VPC Peering、未在Terraform配置中定义的路由表条目):Terraform不会识别这类资源,也不会对其执行销毁或修改操作,因为它们既不在state记录里,也没出现在配置文件中。
- 若手动修改了Terraform原本管理的资源(比如初始用Terraform创建的路由表,后续手动添加了路由条目):需看你的Terraform配置是否包含这些手动修改内容。如果配置里没有对应定义,
terraform apply会将该资源重置回配置里的状态——也就是删除手动添加的条目。
验证方法
- 仔细检查
terraform plan输出:如果plan未提及要销毁或修改你手动变更的资源(如VPC Peering、路由表变更),则apply不会触动这些资源。 - 执行
terraform state list查看Terraform当前管理的所有资源,确认手动创建的资源不在列表内。 - 对Terraform原本管理的资源(如初始路由表),对比配置文件与实际资源的差异:若配置里没有手动添加的路由条目,plan会显示要移除这些条目,此时你需要将手动变更同步到Terraform配置中,或用
terraform import命令把已有资源/配置导入state,避免被覆盖。
安全部署ALB的步骤
- 再次确认
terraform plan输出,仅关注ALB相关资源(如aws_lb、aws_lb_target_group等),确保未涉及你手动修改的网络资源。 - 若plan确实仅包含ALB的变更,直接执行
terraform apply即可,手动配置不会受影响。 - 后续建议将所有手动网络配置同步到Terraform配置中,并导入到state(使用
terraform import命令),实现基础设施即代码的统一管理,避免后续操作出现意外。
内容的提问来源于stack exchange,提问作者Chamara Madhushanka
相关产品推荐
相关产品推荐

