我正在嘗試aws_rds_cluster通過更新我的資源來創建我當前存在的未加密版本的加密版本,我補充說:
kms_key_id = "mykmskey"
storage_encrypted = true
這就是我的資源的樣子:
resource "aws_rds_cluster" "my_rds_cluster" {
cluster_identifier = "${var.service_name}-rds-cluster"
database_name = var.db_name
master_username = var.db_username
master_password = random_password.db_password.result
engine = var.db_engine
engine_version = var.db_engine_version
kms_key_id = "mykmskey"
storage_encrypted = true
db_subnet_group_name = aws_db_subnet_group.fleet_service_db_subnet_group.name
vpc_security_group_ids = [aws_security_group.fleet_service_service_db_security_group.id]
skip_final_snapshot = true
backup_retention_period = var.environment != "prod" ? null : 7
# snapshot_identifier = "my-rds-instance-snapshot"
tags = { Name = "${var.service_name}-rds-cluster" }
}
問題是原始資源已delete_protection = true定義,我也將其洗掉,但即使我將其洗掉,也無法通過任何方式洗掉原始集群以創建新集群,既不是通過 Terraform 中的更改,也不是在 AWS 中手動控制臺,它只會拋出一個錯誤,例如:
error creating RDS cluster: DBClusterAlreadyExistsFault: DB Cluster already exists
在這種情況下該怎么做?
uj5u.com熱心網友回復:
要完全通過 Terraform 做到這一點,您必須:
- 從原始 Terraform 資源中洗掉洗掉保護
- Run
terraform apply,這將從 AWS 中的實際資源中洗掉洗掉保護 - 對 Terraform 資源進行修改,這將導致洗掉或替換當前資源
- 再次運行
terraform apply,在此期間 Terraform 現在將洗掉和/或替換資源。
這里的關鍵是您不能在實際洗掉資源的同時洗掉洗掉保護,因為 Terraform 在嘗試洗掉資源之前不會更新現有資源以修改屬性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/529203.html
標籤:亚马逊网络服务地形亚马逊-rdsterraform-provider-aws
上一篇:如何訂購動態幀資料?
