如何在terraform应用期间忽略重复资源错误?

如何在terraform应用期间忽略重复资源错误?,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,我试图使用terraform apply重新应用我的更改,但当我再次这样做时,它会给我错误,因为资源已经存在并停止部署 例如: Error: AlreadyExistsException: An alias with the name arn:aws:kms:us-east-1:490449857273:alias/continuedep-cmk-us-east-1 already exists status code: 400, request id: 4447fd20-d33

我试图使用
terraform apply
重新应用我的更改,但当我再次这样做时,它会给我错误,因为资源已经存在并停止部署

例如:

Error: AlreadyExistsException: An alias with the name arn:aws:kms:us-east-1:490449857273:alias/continuedep-cmk-us-east-1 already exists
        status code: 400, request id: 4447fd20-d33b-4c87-891e-cc5e09cc6108

  on ../../../modules/kms_cmk/main.tf line 11, in resource "aws_kms_alias" "keyalias":
  11: resource "aws_kms_alias" "keyalias" {



Error: Error creating DB Subnet Group: DBSubnetGroupAlreadyExists: The DB subnet group 'continuedep-sbg' already exists.
        status code: 400, request id: 97d662b6-79d4-4fde-aaf7-a2f3e5a0bd9e

  on ../../../modules/rds-postgres/main.tf line 2, in resource "aws_db_subnet_group" "generic_db_subnet_group":
   2: resource "aws_db_subnet_group" "generic_db_subnet_group" {
同样,我在使用许多其他现有资源时也会遇到错误。我希望避免/忽略此类错误并继续部署

< >我可以用其他方式从中间中断的地方重新启动我的TRARAFE资源部署。 我的地形版本是:
TerraformV0.12.9

错误由Terraform提供程序调用的API返回

可能的原因可能是:

  • 您(或其他人)已执行Terraform代码,但您没有共享/更新状态
  • 有人手动创建了它们
  • Terraform销毁失败,删除了API的资源,但未能保存更新状态
解决方案取决于你需要什么。你可以:

  • 从您的地形代码中删除这些资源以停止使用它管理它们
  • 从API(云提供商)中删除这些资源,并使用Terraform重新创建它们
  • 对这些资源执行地形导入,并删除尝试重新创建它们的地形代码(不推荐)
  • 使用terraform apply--target=xxx仅应用您需要应用的资源(不推荐)

在我看来,他们的状态似乎不适用于申请。我认为有必要问一些关于国家的问题来缩小范围。你把国家储存在哪里?您能否提供您正在运行的状态配置部分和完整命令?我猜在随后的应用程序中可能会出现不同或缺失的状态。我认为将资源导入terrafom状态是一个好办法,另请参见这个问题:此外,您应该尝试找出您的状态未正确存储的原因。