Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Terraform上的AWS:删除资源时出错:等待状态变为';销毁';_Amazon Web Services_Terraform_Terraform Provider Aws - Fatal编程技术网

Amazon web services Terraform上的AWS:删除资源时出错:等待状态变为';销毁';

Amazon web services Terraform上的AWS:删除资源时出错:等待状态变为';销毁';,amazon-web-services,terraform,terraform-provider-aws,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代码,但我认

我正在使用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代码,但我认为我的资源堆栈中没有什么特别之处,基本上包括:

  • 专有网络和子网
  • Internet和NAT GTWs
  • 应用程序负载平衡器
  • 路由表
  • 自动生成的NACL和弹性网络接口(ENIs)
  • 在我的案例中,问题似乎与连接到ALB的ENIs有关-从AWS控制台可以看出:

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

    我将在这个问题中重点讨论与专有网络组件相关的问题(子网、ENIs等)和依赖于这些组件的资源(负载平衡器、EC2、Lambda功能等)和未能被删除可能是因为在删除之前需要一个分离阶段

    我们将非常感谢您的帮助


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

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "*",
                "Resource": "*"
            }
        ]
    }
    
    所以这不应该和政策有关


    有关问题的例子:

    (解决方案不起作用-我有AWS provider的更新版本)


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

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

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

    • 使用
      terraformapply
      恢复到良好状态,然后在再次运行
      terraformdestroy
      之前使用
      kubectl
      清理资源
    • 本知识库文章包含一个脚本,您可以运行该脚本来识别依赖项:
    • 查看CloudTrail日志以查看创建了哪些资源。如果这是EKS的问题,您可以通过用户名进行过滤:
      AmazonEKS
    此问题的另一个变体是
    DependencyViolation
    错误。例:

    删除VPC时出错:DependencyViolation:VPC“VPC-xxxxx”具有依赖项,无法删除。状态代码:400


    部署VPC后,您是否手动添加了任何组件?好的,一个小的更正,我通过kubectl K8S资源和AWS ALB入口添加了一个组件,我猜这可能会导致问题..并在这里找到相关问题:针对我的情况。