我尝试使用 desired_status =“ TERMINATED” 在terraform中停止GCP VM,但出现以下错误代码:
错误:参数不受支持
在main.tf第24行的资源“ google_compute_instance”“默认”中: 24:desired_status =“已终止”
此处不应使用名为“ desired_status”的参数。
完整的地形代码为:
terraform {
required_providers {
google = {
source = "hashicorp/google"
}
}
}
provider "google" {
version = "3.5.0"
credentials = file("cred.json")
project = "project-gcp-25625415"
region = "us-central1"
zone = "us-central1-c"
}
resource "google_compute_instance" "default"{
name = "terra2"
machine_type = "f1-micro"
zone = "us-central1-a"
desired_status = "TERMINATED"
boot_disk {
initialize_params {
image = "debian-cloud/debian-9"
}
}
network_interface {
network = "default"
access_config {
// Ephemeral IP
}
}
}
答案 0 :(得分:1)
看看terraform-provider-google的发行说明。
要使用desired_status
字段来停止和启动GCE VM实例,您至少应使用version 3.11或更高版本的gcp提供程序:
计算:添加了管理状态的功能
google_compute_instance
个字段中的desired_status
个资源 (#4797)
答案 1 :(得分:1)
Terraform 确实是为声明性操作而设计的,停止实例更像是一种程序性或命令性操作。
查看 https://docs.infraql.io/language-spec/exec#stopping-a-google-compute-engine-instance,InfraQL 支持访问所有 Google 提供程序方法,可以非交互式或交互式运行,
EXEC compute.instances.stop
@instance = 'demo-instance-1',
@project = 'infraql-demo',
@zone = 'australia-southeast1-a';