我尝试删除我的 Amazon VPC,但收到了依赖关系错误。如何删除我的 Amazon VPC?

上次更新时间:2021 年 2 月 15 日

当我尝试删除我的 Amazon Virtual Private Cloud (Amazon VPC) 时收到依赖关系错误。如何删除我的 Amazon VPC?

简短描述

如果您使用 AWS 命令行界面 (AWS CLI) 来删除 Amazon VPC,您必须先执行以下措施:

  • 终止所有实例
  • 删除所有子网
  • 删除自定义安全组和自定义路由表
  • 分离所有互联网网关或虚拟私有网关

当您使用 Amazon VPC 控制台删除您的 Amazon VPC 时,它的所有组件也会被删除。这些组件可以包括子网、安全组、网络访问控制列表 (ACL)、路由表、互联网网关、虚拟私有网关、VPC 对等连接或 DHCP 选项。但是,如果您不在尝试删除 Amazon VPC 之前删除依赖资源,您将收到以下依赖关系错误之一。

解决方法

注意:如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新的 AWS CLI 版本

解决通过 AWS CLI 尝试删除 Amazon VPC 时收到的错误

以下错误表明,必须删除一些依赖关系才能删除 Amazon VPC:“调用 DeleteVpc 操作时发生错误 (DependencyViolation):vpc <vpc-id> 具有依赖关系,无法删除。”

要解决此错误:

1.    运行以下脚本以查找剩余的依赖关系。务必将 vpc-id 替换为您的 VPC ID。

#!/bin/bash
vpc="vpc-xxxxxxxxxxxxx" 
aws ec2 describe-internet-gateways --filters 'Name=attachment.vpc-id,Values='$vpc | grep InternetGatewayId
aws ec2 describe-subnets --filters 'Name=vpc-id,Values='$vpc | grep SubnetId
aws ec2 describe-route-tables --filters 'Name=vpc-id,Values='$vpc | grep RouteTableId
aws ec2 describe-network-acls --filters 'Name=vpc-id,Values='$vpc | grep NetworkAclId
aws ec2 describe-vpc-peering-connections --filters 'Name=requester-vpc-info.vpc-id,Values='$vpc | grep VpcPeeringConnectionId
aws ec2 describe-vpc-endpoints --filters 'Name=vpc-id,Values='$vpc | grep VpcEndpointId
aws ec2 describe-nat-gateways --filter 'Name=vpc-id,Values='$vpc | grep NatGatewayId
aws ec2 describe-security-groups --filters 'Name=vpc-id,Values='$vpc | grep GroupId
aws ec2 describe-instances --filters 'Name=vpc-id,Values='$vpc | grep InstanceId
aws ec2 describe-vpn-connections --filters 'Name=vpc-id,Values='$vpc | grep VpnConnectionId
aws ec2 describe-vpn-gateways --filters 'Name=attachment.vpc-id,Values='$vpc | grep VpnGatewayId
aws ec2 describe-network-interfaces --filters 'Name=vpc-id,Values='$vpc | grep NetworkInterfaceId

2.    删除您在步骤 1 中确定的剩余依赖关系,然后重试删除您的 Amazon VPC

解决通过 Amazon VPC 控制台尝试删除 Amazon VPC 时收到的错误

以下错误表明,Amazon VPC 的上面运行有 Amazon EC2 实例:“VPC 包含一个或多个实例,在这些实例终止之前,无法删除 VPC。” 要解决此错误,请终止您的实例,然后重试删除 Amazon VPC

以下错误表明,Amazon VPC 为其他 AWS 服务连接有网络接口:“VPC 包含一个或多个在用的网络接口,在删除这些网络接口之前,无法删除 VPC。”

请遵照以下步骤删除依赖服务,然后重试删除 Amazon VPC

1.    打开 Amazon EC2 控制台

2.    选择 Amazon VPC 所在的区域。

3.    在导航窗格中的网络接口下,搜索您正在删除的 Amazon VPC 的 VPC ID。

4.    选择弹性网络接口,然后选择详细信息选项卡。

5.    查看描述,以查看接口附加到的资源。

6.    删除关联的资源。
注意:如果该网络接口是主网络接口,则删除实例时会删除此接口。

以下错误表明 Amazon VPC 具有一个依赖关系:

  • “网络具有一些已映射的公共地址。请取消这些公共地址的映射再分离网关。”
  • “VPC 具有一个或多个已连接的互联网网关或虚拟私有网关,在分离或删除它们之前不能删除 VPC。”

请遵照以下步骤删除依赖关系,然后重试删除 Amazon VPC

1.    打开 Amazon VPC 控制台

2.    选择 Amazon VPC 所在的区域。

3.    在导航窗格中选择 NAT 网关虚拟私有网关

4.    选择 NAT 网关或虚拟私有网关。

5.    查看描述,以查看接口附加到的资源。

6.    对于操作,选择删除 NAT 网关(适用于互联网网关)或与 VPC 分离(适用于虚拟私有网关)。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?