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

Terraform GCP实例计划:将虚拟机关联至已创建的计划

关联虚拟机关联到Terraform创建的启停策略的方法

你当前的代码仅创建了Google Cloud的实例启停调度策略,但没有将任何虚拟机与这个策略绑定,所以需要补充以下操作:

情况1:虚拟机是通过Terraform管理的

如果你的目标虚拟机也是用Terraform定义的,直接在虚拟机的google_compute_instance资源中添加resource_policies字段,引用已创建的调度策略即可:

# 示例虚拟机资源(根据你的实际配置调整)
resource "google_compute_instance" "test_vm" {
  name         = "test-vm"
  machine_type = "n1-standard-1"
  zone         = "us-east1-a" # 必须属于策略所在的region(示例中是US/Eastern对应的us-east1区域)

  # 以下是虚拟机的基础配置(磁盘、网络等,根据你的实际情况填写)
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }

  network_interface {
    network = "default"
  }

  # 关键:添加这行关联调度策略
  resource_policies = [google_compute_resource_policy.weekly.self_link]
}

情况2:虚拟机已存在(未通过Terraform创建)

如果虚拟机是手动创建的,或者由其他工具管理,需要使用google_compute_instance_resource_policy_attachment资源来完成绑定:

resource "google_compute_instance_resource_policy_attachment" "vm_schedule_attach" {
  project          = local.test_project_id
  name             = "vm-schedule-attachment"
  zone             = "us-east1-a" # 目标虚拟机所在的可用区
  instance         = "你的虚拟机名称"
  resource_policy  = google_compute_resource_policy.weekly.name
}

最后执行步骤

修改完成后,在终端执行:

  1. terraform plan:检查变更是否符合预期
  2. terraform apply:确认后执行,完成策略与虚拟机的关联

注意事项

  • 虚拟机所在的可用区必须属于调度策略的区域(比如策略在us-east1区域,虚拟机要在us-east1-a/us-east1-b等同区域可用区)
  • 如果要关联多个虚拟机,重复对应操作即可(每个VM添加resource_policies,或创建多个attachment资源)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 18:52:16