使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

我试图删除 Amazon VPC,但收到了一条依赖项错误。如何删除我的 Amazon VPC?

3 分钟阅读
0

在试图删除 Amazon Virtual Private Cloud(Amazon VPC)时,我收到了一条依赖项错误。

简短描述

在删除 Amazon VPC 时,也会删除其所有组件。这些组件包括子网、安全组、网络访问控制列表(网络 ACL)、路由表、互联网网关和 DHCP 选项。

解决方法

在删除 Amazon VPC 之前,必须先删除或取消关联所有依赖资源。

您可以使用 AWS 命令行界面 (AWS CLI) delete-vpc 命令或 Amazon VPC 控制台来删除 Amazon VPC。

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

**注意:**如果在运行 AWS CLI 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

"An error occurred (DependencyViolation) when calling the DeleteVpc operation: The vpc 'vpc-id' has dependencies and cannot be deleted."

此错误表示您必须先删除依赖项,然后才能删除 Amazon VPC。要解决此错误,请完成以下步骤:

  1. 运行下面的脚本以查找其余依赖项:
    注意: 在以下脚本中,将 VPC_ID 替换为您的 VPC ID 值。此外,将 AWS_REGION 替换为您的 AWS 区域(例如,us-east-1)。使用具有适当权限的凭证来运行 Describe API 调用。

    #!/bin/bashvpc="vpc-xxxxxxxxxxxxx"
    region="yy-yyyy-y"
    aws ec2 describe-internet-gateways --region AWS_REGION --filters 'Name=attachment.vpc-id,Values='VPC_ID | grep InternetGatewayId
    aws ec2 describe-subnets --region AWS_REGION --filters 'Name=vpc-id,Values='VPC_ID | grep SubnetId
    aws ec2 describe-route-tables --region AWS_REGION --filters 'Name=vpc-id,Values='VPC_ID | grep RouteTableId
    aws ec2 describe-network-acls --region AWS_REGION --filters 'Name=vpc-id,Values='VPC_ID | grep NetworkAclId
    aws ec2 describe-vpc-peering-connections --region AWS_REGION --filters 'Name=requester-vpc-info.vpc-id,Values='VPC_ID | grep VpcPeeringConnectionId
    aws ec2 describe-vpc-endpoints --region AWS_REGION --filters 'Name=vpc-id,Values='VPC_ID | grep VpcEndpointId
    aws ec2 describe-nat-gateways --region AWS_REGION --filter 'Name=vpc-id,Values='VPC_ID | grep NatGatewayId
    aws ec2 describe-security-groups --region AWS_REGION --filters 'Name=vpc-id,Values='VPC_ID | grep GroupId
    aws ec2 describe-instances --region AWS_REGION --filters 'Name=vpc-id,Values='VPC_ID | grep InstanceId
    aws ec2 describe-vpn-gateways --region AWS_REGION --filters 'Name=attachment.vpc-id,Values='VPC_ID | grep VpnGatewayId
    aws ec2 describe-network-interfaces --region AWS_REGION --filters 'Name=vpc-id,Values='VPC_ID | grep NetworkInterfaceId
    aws ec2 describe-carrier-gateways --region AWS_REGION --filters Name=vpc-id,Values=VPC_ID | grep CarrierGatewayId
    aws ec2 describe-local-gateway-route-table-vpc-associations --region AWS_REGION --filters Name=vpc-id,Values=VPC_ID | grep LocalGatewayRouteTableVpcAssociationId
  2. 删除您在步骤 1 中确定的所有依赖项。

  3. 删除您的 Amazon VPC。

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

通过控制台删除 Amazon VPC 时的常见依赖项错误如下:

"VPC contains one or more instances, and cannot be deleted until those instances have been terminated."

此错误表示 Amazon VPC 上正在运行 Amazon Elastic Compute Cloud(Amazon EC2)实例。若要解决此错误,请终止您的实例

"VPC contains one or more in-use network interfaces, and cannot be deleted until those network interfaces have been deleted."

此错误表明 Amazon VPC 的某些网络接口正在使用或可用。

"An error occurred (InvalidParameterValue) when calling the DeleteNetworkInterface operation: Network interface 'eni-aabbccdd' is currently in use."

此错误表示存在您无法删除、由请求者托管的网络接口。若要删除请求者托管的网络接口,您必须删除创建网络接口的 AWS 服务。

请按照下列步骤删除依赖服务:

  1. 打开 Amazon EC2 控制台
  2. 选择 Amazon VPC 所在的 AWS 区域。
  3. 在导航窗格的 Network Interfaces(网络接口)下,搜索要删除的 Amazon VPC 的 VPC ID。
  4. 选择网络接口,然后选择 Details(详细信息)选项卡。
  5. 检查 Description(描述),以查看网络接口附加到的资源。
  6. 删除关联的资源。
    注意: 如果网络接口为主接口,则当您删除该实例时,资源也会被删除。

"VPC has one or more attached NAT gateways or virtual private gateways, and cannot be deleted until they are detached or deleted."

此错误表明 Amazon VPC 有一个依赖网关。按照删除 NAT 网关分离并删除虚拟私有网关中的步骤解决此错误。

"The VPC is peered as a requester with at least one other VPC through peering connections."

此错误表示 Amazon VPC 中存在活动的 VPC 对等连接。按照删除 VPC 对等连接中的步骤来解决此错误。

其他依赖项错误

如果仍然存在阻止 Amazon VPC 删除的依赖项,请执行以下步骤。

首先删除运营商网关:

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格中,选择 Carrier Gateways(运营商网关)。
  3. 选择运营商网关,选择 Actions(操作),然后选择 Delete carrier gateway(删除运营商网关)。
  4. Delete carrier gateway(删除运营商网关)对话框中,输入 Delete(删除),然后选择 Delete(删除)。

下一步,解除 VPC 与任何本地网关路由表的关联:

  1. 打开 AWS Outposts 控制台
  2. 在导航窗格中,选择本地网关路由表
  3. 选择路由表。
  4. 选择操作,然后选择查看详细信息
  5. VPC 关联中,选择要取消关联的 VPC,然后选择取消关联
  6. 选择取消关联

相关信息

为什么我无法分离或删除 Lambda 创建的弹性网络接口?

如何删除与其他 AWS 账户共享的 VPC?

为什么我无法删除请求者托管的 VPC 端点?

AWS 官方
AWS 官方已更新 3 个月前