我正在使用terraform
导入现有GCP Compute Engine Resource
的状态,以便以后可以使用terraform
管理资源
我使用以下命令导入
terraform import google_compute_instance.default <project-d>/us-east1-b/server-001
之后,我执行terraform show
来识别现有资源的状态,并将其输出复制粘贴到main.tf
文件中。
现在,当我做terraform plan
时,它显示以下错误
Error: "label_fingerprint": this field cannot be set
# google_compute_instance.default:
on main.tf line 2, in resource "google_compute_instance" "default":
2: resource "google_compute_instance" "default" {
Error: "current_status": this field cannot be set
on main.tf line 2, in resource "google_compute_instance" "default":
2: resource "google_compute_instance" "default" {
Error: "network_interface.0.name": this field cannot be set
on main.tf line 2, in resource "google_compute_instance" "default":
2: resource "google_compute_instance" "default" {
Error: "instance_id": this field cannot be set
on main.tf line 2, in resource "google_compute_instance" "default":
2: resource "google_compute_instance" "default" {
Error: : invalid or unknown key: id
on main.tf line 2, in resource "google_compute_instance" "default":
2: resource "google_compute_instance" "default" {
以下是的代码行
project = "<Project-ID>"
current_status = "TERMINATED"
name = "server-001"
hostname = "server-001.example.com"
id = "projects/<project-id>/zones/us-east1-b/instances/server-001"
instance_id = "7335818403011119952"
labels = {
"env" = "dev"
"server" = "app"
}
machine_type = "f1-micro"
zone = "us-east1-b"
boot_disk {
auto_delete = true
device_name = "server-001"
mode = "READ_WRITE"
source = "https://www.googleapis.com/compute/v1/projects/<projec-id>/zones/us-east1-b/disks/server-001"
initialize_params {
image = "https://www.googleapis.com/compute/v1/projects/centos-cloud/global/images/centos-7-v20200309"
labels = {}
size = 10
type = "pd-standard"
}
}
network_interface {
name = "nic0"
network = "https://www.googleapis.com/compute/v1/projects/<projec-id>/global/networks/adminproject-vpc"
network_ip = "10.3.0.2"
subnetwork = "https://www.googleapis.com/compute/v1/projects/<projec-id>/regions/us-east1/subnetworks/app-subnet"
subnetwork_project = "<project-id>"
}
Terraform
版本如下
$ terraform version
Terraform v0.12.24
+ provider.google v3.29.0
删除这些属性可以解决问题,但我们不能在为terraform创建清单文件时设置这些属性吗?请引导。
Terraform无法管理这些字段。它们可以用于其他资源的配置,但不能在google_compute_instance
资源本身上进行修改,因为它们是由GCP委托的。您可以在此处查看google_compute_instance
资源支持的参数。