三行代码  ›  专栏  ›  技术社区  ›  Shreyas Awankar

使用地形创建GCP资源时出错

  •  0
  • Shreyas Awankar  · 技术社区  · 3 周前

    我正试图通过使用地形来创建一个资源。

    这是代码

    provider "google" {
      project     = "evident-plane-403213"
      credentials = file("evident-plane-403213-1b4230892244.json")
      region      = "us-central1"
      zone        = "us-central1-c"
    }
    
    resource "google_compute_instance" "my-instance" {
      name                      = "terraform-instance"
      machine_type              = "f1-micro"
      zone                      = "us-central1"
      allow_stopping_for_update = true
    
      boot_disk {
        initialize_params {
          image = "debian-cloud/debian-10"
        }
      }
    
      network_interface {
        network    = google_compute_network.terraform_network.self_link
        subnetwork = google_compute_subnetwork.terraform_subnet.self_link
        access_config {
          // Keeping it empty. It will access over the internet.
        }
      }
    }
    
    resource "google_compute_network" "terrform_network" {
      name                    = "terraform-network"
      auto_create_subnetworks = false
    }
    
    resource "google_compute_subnetwork" "terraform_subnet" {
      name          = "terraform-subnetwork"
      ip_cidr_range = "10.20.0.0/15"
      region        = "us-central1"
      network       = google_compute_network.terraform_network.id
    }
    
    

    我的资源没有创建,并且出现了一些错误

    错误:引用未声明的资源 在主.tf第33行,在资源“google_computer_subnetwork”“terraform_subnet”中: 33:network=google_computer_network.terraform_network.id 托管资源“谷歌计算网络”“地形网络”尚未
    在根模块中声明。

    错误在哪里?请帮忙解释。

    1 回复  |  直到 3 周前
        1
  •  0
  •   Mark B    3 周前

    在您的资源中:

    resource "google_compute_network" "terrform_network" {
    

    您在资源名称中有一个拼写错误。它被命名为 terrform_network 。它缺少 a 在里面 terraform

    稍后,当您尝试引用它时,您将包含 :

    network       = google_compute_network.terraform_network.id
    

    因此,资源的名称与您稍后尝试引用的名称不匹配。