1

我需要将现有的 Aurora 集群导入到 terraform。我试过terraform import aws_rds_cluster.sample_cluster cluster声明。我也准备好了状态文件,我也可以这样做Terraform show但是,当我尝试销毁集群时,Terraform 尝试删除没有其下实例的集群 - 所以销毁命令失败。

`Error: error deleting RDS Cluster (test): InvalidDBClusterStateFault: Cluster cannot be deleted, it still contains DB instances in non-deleting state.status code: 400, request id: 15dfbae8-aa13-4838-bc42-8020a2c87fe9`

有没有办法可以导入包含实例的整个集群?我需要一个可用于管理整个集群(包括底层实例)的状态文件。这是用于调用导入的 main.tf -

access_key = "***"
secret_key = "*****"
region = "us-east-1"
}
resource "aws_rds_cluster" "test" {
   engine               = "aurora-postgresql"
   engine_version       = "11.9"
   instance_class       = "db.r5.2xlarge"
   name                 = "test"
   username             = "user"
   password             = "******"
   parameter_group_name = "test"
}```
4

1 回答 1

0

根据评论。

仅将aws_rds_cluster导入 TF 是不够的。还必须导入属于集群的所有aws_rds_cluster_instance资源。

如果现有的基础设施很复杂,可以考虑使用一个开源的第三方工具,称为former2 ,而不是完全手动开发用于导入过程的 TF 配置文件。该工具可以从现有资源生成 TF 配置文件:

Former2 允许您从 AWS 账户中的现有资源生成基础设施即代码输出。

TF 是支持的输出之一。

于 2021-01-23T10:39:04.763 回答