AWS on Terraform:删除资源时出错:等待状态变为“销毁”时超时

时间:2020-07-28 07:24:42

标签: amazon-web-services terraform terraform-provider-aws

我正在使用Terraform(v0.12.28)启动我的AWS环境(aws provider v2.70.0)。
当我尝试使用terraform destroy删除所有资源时,遇到以下错误:

error deleting subnet (subnet-XXX): timeout while waiting for state to become 'destroyed' (last state: 'pending', timeout: 20m0s)

我可以添加Terraform代码,但是我认为资源堆栈中没有什么特别的东西,基本上包括:

  1. VPC和子网。
  2. Internet和NAT GTW。
  3. 应用程序负载平衡器。
  4. 路由表。
  5. 自动生成的NACL和弹性网络接口(ENI)。

就我而言,问题似乎与附加到ALB的ENI有关-从AWS控制台可以看出:

enter image description here

在寻找解决方案时,我注意到这是一个常见问题,可能来自不同的资源和依赖类型。

我将在这个问题上重点解决与VPC组件(子网,ENI等)和依赖于它们的资源(负载均衡器, EC2,Lambda函数等)并且无法删除,可能是由于在删除之前需要分离阶段的事实。

我们将不胜感激任何帮助。


(*)此环境(DEV)的Terraform用户具有完整的管理员特权:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "*",
            "Resource": "*"
        }
    ]
}

所以这不应该与政策有关。


相关问题示例:

Update: Issue affecting HashiCorp Terraform resource deletions after the VPC Improvements to AWS Lambda(解决方案不起作用-我具有AWS提供程序的更新版本)。

AWS VPC - cannot detach "in use" AWS Lambda VPC ENI

Lambda Associated EC2 Subnet and Security Group Deletion Issues and Improvements

AWS: deletion of subnet times out because of scaling group

Error waiting for route table (rtb-xxxxxx) to become destroyed: timeout while waiting for state to become

Error waiting for internet gateway to detach / Cluster has node groups attached

1 个答案:

答案 0 :(得分:0)

我在将服务(特别是负载均衡器)部署到集群后尝试销毁 EKS 集群时遇到了这个问题。为了解决这个问题,我手动删除了负载均衡器和与负载均衡器关联的安全组。

Terraform 不知道 k8s 提供的资源,也不会清理依赖的资源。

如果您不确定是什么资源阻止了 Terraform 破坏基础设施,您可以尝试以下方法:

此问题的另一个变体是 DependencyViolation 错误。例如:

<块引用>

删除 VPC 时出错:DependencyViolation:vpc 'vpc-xxxxx' 具有依赖关系,无法删除。状态码:400