You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Terraform代码停止实例?不销毁仅停止的命令是什么?

Terraform停止实例的相关问题解答

1. 如何通过Terraform代码停止实例?

Terraform本身没有直接的"停止实例"命令,需要通过调整资源配置来实现,具体取决于你的云提供商:

  • 以AWS EC2为例:在aws_instance资源块中添加或修改instance_state参数为"stopped",示例配置如下:
    resource "aws_instance" "example" {
      ami           = "ami-0c55b159cbfafe1f0"
      instance_type = "t2.micro"
      instance_state = "stopped" # 设置为停止状态
    }
    
  • 对于不支持直接设置实例状态的云提供商,可以使用local-exec provisioner调用云厂商的CLI命令来停止实例,示例:
    resource "aws_instance" "example" {
      ami           = "ami-0c55b159cbfafe1f0"
      instance_type = "t2.micro"
    
      provisioner "local-exec" {
        command = "aws ec2 stop-instances --instance-ids ${self.id}"
      }
    }
    

修改配置后执行对应的Terraform命令,即可将实例状态更新为停止。

2. 是否可以不销毁实例而仅将其停止?

是的,完全可以。terraform destroy会彻底删除实例资源,而通过调整配置更新实例状态,只是将实例转为停止状态,实例关联的磁盘、弹性IP等资源会被保留,后续可通过修改配置为"running"并执行命令重新启动实例。

3. 命令行空缺处应填写什么?

空缺处应填写apply,完整命令为:

C:\terraform\2-instances>terraform apply

前提是你已经修改了Terraform配置文件,将实例的状态设置为停止(如上述AWS示例中的instance_state = "stopped")。执行该命令后,Terraform会对比当前配置与远程资源状态,将实例更新为停止状态,不会销毁实例。

内容的提问来源于stack exchange,提问作者Aswini Gadde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 07:09:58