在 terraform 中为 GCP 安排自动缩放器?

问题描述 投票:0回答:1

我正在尝试使用 terraform 在 GCP 中安排自动缩放程序。我想使用 cronjob 并根据 google documentation 来安排它,但它不起作用。

根据谷歌文档,这是我的 main.tf 的一部分:

resource "google_compute_instance_group_manager" "mig" {
  name = "${var.gcp_env}-${var.gcp_project}-mig"
  version {
    instance_template = google_compute_instance_template.debian12_template.self_link
  }

  base_instance_name = "${var.gcp_env}-${var.gcp_project}-instance"
  target_size = 2
  zone = "${var.gcp_region}-a"

  named_port {
    name = "http"
    port = 80
  }
}

resource "google_compute_autoscaler" "autoscaler" {
  name   = "${var.gcp_env}-${var.gcp_project}-autoscaler"
  zone   = "${var.gcp_region}-a"
  target = google_compute_instance_group_manager.mig.id

  autoscaling_policy {
    mode            = "ON"
    cooldown_period = 60

    cpu_utilization {
      target = 0.9
    }

    max_replicas = 2
    min_replicas = 1
  }

    scaling_schedules {
      name                  = "every-weekday-morning"
      description           = "Increase to 2 every weekday at 7AM for 12 hours."
      min_required_replicas = 2
      schedule              = "0 9 * * MON-FRI"
      time_zone             = "utc/utc"
      duration_sec          = 32400
    }
  }

当我尝试运行它时,出现错误:

$ terraform apply -auto-approve
╷
│ Error: Unsupported block type
│ 
│   on main.tf line 115, in resource "google_compute_autoscaler" "autoscaler":
│  115:     scaling_schedules {
│ 
│ Blocks of type "scaling_schedules" are not expected here.

我不明白。当我检查 Terraform 文档时,它没有任何关于scaling_schedule的内容(我在浏览完之后找不到它。)

希望得到一些解决此问题的帮助

google-cloud-platform terraform google-compute-engine terraform-provider-gcp
1个回答
0
投票

google
提供程序的版本必须至少为 3.69.0,才能根据 CHANGELOG 支持该资源中的该块。这可以通过
required_providers
块中提供程序版本的语义版本控制规范来完成。

terraform {
  required_providers {
    google = {
      source = "hashicorp/google"
      version = "~> 3.0"
    }
  }
}

可能建议使用

~> 5.0
(甚至根据您的情况使用
~> 6.0
),但这取决于您的环境。

© www.soinside.com 2019 - 2024. All rights reserved.