【问题标题】:Failing to create Cloud SQL Instance through Terraform通过 Terraform 创建 Cloud SQL 实例失败
【发布时间】:2021-01-15 13:28:25
【问题描述】:

我想在项目中创建一个 Cloud SQL 实例,连接到主机 VPC。但是,在运行 terraform apply 时,我每次都会得到相同的结果:

google_sql_database_instance.default: Still creating... [1m20s elapsed]
google_sql_database_instance.default: Still creating... [1m30s elapsed]
google_sql_database_instance.default: Still creating... [1m40s elapsed]
google_sql_database_instance.default: Still creating... [1m50s elapsed]

Error: Error waiting for Create Instance: 



Error: Process completed with exit code 1.

我在这里看到other answers 声称通过配置私有服务访问来解决问题,但这似乎并不能解决我的问题。

这是我的 terraform 文件,包含相关部分:

google_compute_global_address" "private_ip_address" {
  provider = google-beta

  project       = data.google_compute_subnetwork.subnet.project
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = data.google_compute_network.shared-vpc.id
}

resource "google_service_networking_connection" "private_vpc_connection" {
  provider = google-beta

  network                 = data.google_compute_network.shared-vpc.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

resource "google_sql_database_instance" "default" {
  provider            = google-beta
  project             = module.base_shared_vpc_project.project_id
  name                = var.db_name
  database_version    = "MYSQL_5_7"
  region              = "us-east1"

  settings {
    tier                        = "db-f1-micro"
    availability_type           = "ZONAL"

    location_preference {
      zone = "us-east1-b"
    }

    ip_configuration {
      ipv4_enabled    = false
      private_network = data.google_compute_network.shared-vpc.id
    }
  }
  depends_on = [google_service_networking_connection.private_vpc_connection]
}

最后一点信息,设置 TF_LOG=DEBUG 仅提供以下附加消息:Retry Transport: Stopping retries, last request failed with non-retryable error

【问题讨论】:

  • 你找到答案了吗?我有一些建议,但很想听听解决方案是什么。

标签: google-cloud-platform terraform-provider-gcp google-vpc


【解决方案1】:

几种可能性:

  1. Cloud SQL API 超时可能已触发,但该过程仍在继续。我在运行带有大型数据转储文件的gcloud sql import sql 命令时遇到了这个问题。我收到了“超时”错误,但进程仍在继续,控制台中的磁盘使用情况监控证明了这一点。
  2. GCP 并没有大惊小怪的一点是,这实际上是 IAC 的一个大问题,即在 10 天内暂停重新使用已删除的 Cloud SQL 实例的名称。因此,如果您的 IAC 尝试重新创建过去 10 天内存在的 Cloud SQL 实例,这可能是问题的一部分。这个问题让我的团队几次翻桌。尝试将日期时间戳作为变量放入“google_sql_database_instance”资源名称中。

【讨论】:

  • 我的 terraform 应用程序循环了 20 多分钟,似乎没有任何效果,然后我才将其杀死。感谢您的评论 #2 - 它让我保持理智。
猜你喜欢
  • 2019-07-18
  • 2021-09-26
  • 2011-03-22
  • 1970-01-01
  • 2020-12-27
  • 2019-08-18
  • 2021-09-03
  • 2021-02-01
  • 2017-02-14
相关资源
最近更新 更多