Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
如何解决我在尝试删除 VPC 时收到的依赖项错误?
当我尝试删除我的 VPC 时,收到依赖项错误。
简短描述
在删除 VPC 时,也会删除其所有组件。这些组件包括子网、安全组、网络访问控制列表 (ACL)、路由表、互联网网关和 DHCP 选项。
解决方法
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
在删除 VPC 之前,必须移除所有关联和依赖的资源。您可以通过 Amazon Virtual Private Cloud (Amazon VPC) 控制台或 AWS CLI 删除 VPC。当您通过 Amazon VPC 控制台删除 VPC 时,也会自动移除某些依赖项(例如子网、互联网网关等)。但是,当您使用 AWS CLI 时,必须先手动删除所有依赖资源,然后才能删除 VPC 本身。
AWS CLI
"An error occurred (DependencyViolation) when calling the DeleteVpc operation: The vpc 'vpc-id' has dependencies and cannot be deleted."
如果在删除 VPC 之前必须移除依赖关系,则会收到此错误。要解决此错误,请完成以下步骤:
- 运行下面的脚本以查找其余依赖项:
**注意:**在以下脚本中,将 VPC_ID 替换为您的 VPC ID 值。此外,将 AWS_REGION 替换为您的 AWS 区域。使用具有适当权限的凭证来运行 Describe API 调用。#!/bin/bashvpc="vpc-#############"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 aws ec2 describe-vpc-peering-connections --region AWS_REGION --filters 'Name=accepter-vpc-info.vpc-id,Values='VPC_ID | grep VpcPeeringConnectionId - 删除您在步骤 1 中确定的所有依赖项。
- 删除您的 VPC。
Amazon VPC 控制台
以下是您在通过控制台删除 VPC 时可能会收到的一些常见依赖项错误:
"VPC contains one or more instances, and cannot be deleted until those instances have been terminated."
当 VPC 上运行 Amazon Elastic Compute Cloud (Amazon EC2) 实例时,您会收到此错误。
要解决此错误,请终止您的 Amazon EC2 实例。
"VPC contains one or more in-use network interfaces, and cannot be deleted until those network interfaces have been deleted."
当您的 VPC 具有正在使用或可用的网络接口时,您会收到此错误。
"An error occurred (InvalidParameterValue) when calling the DeleteNetworkInterface operation: Network interface 'eni-aabbccdd' is currently in use."
当存在您无法删除、由请求者托管的网络接口时,您会收到此错误。若要删除请求者托管的网络接口,您必须删除创建网络接口的 AWS 服务。
要移除依赖服务,请完成以下步骤:
- 打开 Amazon EC2 控制台。
- 选择 VPC 所在的区域。
- 在导航窗格的 Network Interfaces(网络接口)下,搜索要删除的 VPC 的 VPC ID。
- 选择网络接口,然后选择 Details(详细信息)选项卡。
- 检查 Description(描述),以查看网络接口附加到的资源。
- 删除关联的资源。
**注意:**如果网络接口为主接口,则当您删除该实例时,资源也会被删除。
"VPC has one or more attached NAT gateways or virtual private gateways, and cannot be deleted until they are detached or deleted."
当 VPC 具有依赖网关时,您会收到此错误。要解决此错误,请完成删除 NAT 网关和删除 AWS Site-to-Site VPN 连接和网关中的步骤。
"The VPC is peered as a requester with at least one other VPC through peering connections."
当存在活动的 VPC 对等连接时,您会收到此错误。要解决此错误,请完成删除 VPC 对等连接中的步骤。
其他依赖项错误
如果仍然存在阻止 VPC 删除的依赖项,请先删除运营商网关。然后解除 VPC 与任何本地网关路由表的关联。
要删除运营商网关,请完成以下步骤:
- 打开 Amazon VPC 控制台。
- 在导航窗格中,选择 Carrier Gateways(运营商网关)。
- 选择运营商网关,选择 Actions(操作),然后选择 Delete carrier gateway(删除运营商网关)。
- 在 Delete carrier gateway(删除运营商网关)对话框中,输入 Delete(删除),然后选择 Delete(删除)。
要解除 VPC 与任何本地网关路由表的关联,请完成以下步骤:
- 打开 AWS Outposts 控制台。
- 在导航窗格中,选择本地网关路由表。
- 选择路由表。
- 选择操作,然后选择查看详细信息。
- 在 VPC associations(VPC 关联)中,选择要取消关联的 VPC,然后选择 Disassociate(取消关联)。
相关信息
- 语言
- 中文 (简体)

