为什么我们在terraform中得到资源存在的错误?

时间:2018-01-29 20:49:25

标签: amazon-web-services terraform

可能是某些时候我不理解的东西。

执行计划然后申请。由于未找到快照,因此创建了少量资源并失败。

aws_lambda_function.LambdaShipRdsLog: Creation complete
aws_rds_cluster_parameter_group.default: Creation complete
aws_db_parameter_group.default: Creation complete
aws_s3_bucket.RdsLogShipment: Creation complete
Error applying plan:

发生1个错误:

* aws_rds_cluster.default: Error creating RDS Cluster: DBClusterSnapshotNotFoundFault: DBClusterSnapshot not found: xy
    status code: 404, request id: 123

所以,我修复了问题并触发了计划并再次申请,但最终导致资源存在错误。

发生了3次错误:

* aws_db_parameter_group.default: Error creating DB Parameter Group: DBParameterGroupAlreadyExists: Parameter group xyz already exists
    status code: 400, request id: 123
* aws_lambda_function.LambdaShipRdsLog: Error creating Lambda function: ResourceConflictException: Function already exist: xyz
    status code: 409, request id: 123
* aws_rds_cluster_parameter_group.default: Error creating DB Cluster Parameter Group: DBParameterGroupAlreadyExists: Parameter group xyz already exists
    status code: 400, request id: 123

根据我的理解,正在创建的任何资源都将在状态文件中更新,下次当我为配置执行terraform plan时,它知道资源已经存在并且它将跳过它,但事实并非如此。有人能解释我错过的东西吗?感谢。

1 个答案:

答案 0 :(得分:1)

最有可能的是,如果没有看到Terraform文件和直接计划/应用,您可能手动创建了具有相同名称的资源或者Terraform创建了资源并且手动删除了该资源。当你手动删除东西时,它会产生依赖性问题。