gpt4 book ai didi

google-cloud-platform - GCP Cloud SQL 未能删除实例,因为 `deletion_protection` 设置为 true

转载 作者:行者123 更新时间:2023-12-04 11:47:14 25 4
gpt4 key购买 nike

我有一个用于配置 Cloud SQL 实例的 tf 脚本,以及几个数据库和一个管理员用户。我已重命名该实例,因此创建了一个新实例,但 terraform 在删除旧实例时遇到了问题。

Error: Error, failed to delete instance because deletion_protection is set to true. Set it to false to proceed with instance deletion
我试过设置 deletion_protectionfalse但我不断收到同样的错误。有没有办法检查哪些资源需要拥有 deletion_protection设置为false以被删除?
我只将它添加到 google_sql_database_instance资源。
我的 tf 脚本:
// Provision the Cloud SQL Instance
resource "google_sql_database_instance" "instance-master" {
name = "instance-db-${random_id.random_suffix_id.hex}"
region = var.region
database_version = "POSTGRES_12"

project = var.project_id

settings {
availability_type = "REGIONAL"
tier = "db-f1-micro"
activation_policy = "ALWAYS"
disk_type = "PD_SSD"

ip_configuration {
ipv4_enabled = var.is_public ? true : false
private_network = var.network_self_link
require_ssl = true

dynamic "authorized_networks" {
for_each = toset(var.is_public ? [1] : [])

content {
name = "Public Internet"
value = "0.0.0.0/0"
}
}
}

backup_configuration {
enabled = true
}

maintenance_window {
day = 2
hour = 4

update_track = "stable"
}

dynamic "database_flags" {
iterator = flag
for_each = var.database_flags

content {
name = flag.key
value = flag.value
}
}

user_labels = var.default_labels
}

deletion_protection = false
depends_on = [google_service_networking_connection.cloudsql-peering-connection, google_project_service.enable-sqladmin-api]
}

// Provision the databases
resource "google_sql_database" "db" {
name = "orders-placement"
instance = google_sql_database_instance.instance-master.name
project = var.project_id
}

// Provision a super user
resource "google_sql_user" "admin-user" {
name = "admin-user"
instance = google_sql_database_instance.instance-master.name
password = random_password.user-password.result
project = var.project_id
}

// Get latest CA certificate
locals {
furthest_expiration_time = reverse(sort([for k, v in google_sql_database_instance.instance-master.server_ca_cert : v.expiration_time]))[0]
latest_ca_cert = [for v in google_sql_database_instance.instance-master.server_ca_cert : v.cert if v.expiration_time == local.furthest_expiration_time]
}

// Get SSL certificate
resource "google_sql_ssl_cert" "client_cert" {
common_name = "instance-master-client"
instance = google_sql_database_instance.instance-master.name
}

最佳答案

似乎您的代码将重新创建此 sql 实例。但是您当前的 tfstate 文件包含一个带有 true 的实例代码deletion_protection 的值范围。在这种情况下,您首先需要将此参数的值更改为 false在 tfstate 文件中手动或通过添加 deletion_protection = true在运行 terraform apply 的代码中之后的命令(注意:您的代码不应该重新创建实例)。在这些操作之后,你可以对你的 SQL 实例做任何事情

关于google-cloud-platform - GCP Cloud SQL 未能删除实例,因为 `deletion_protection` 设置为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64611122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com