我正在尝试使用 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
提供程序的版本必须至少为 3.69.0,才能根据 CHANGELOG 支持该资源中的该块。这可以通过 required_providers
块中提供程序版本的语义版本控制规范来完成。
terraform {
required_providers {
google = {
source = "hashicorp/google"
version = "~> 3.0"
}
}
}
可能建议使用
~> 5.0
(甚至根据您的情况使用~> 6.0
),但这取决于您的环境。