跳至內容

如何解決嘗試刪除 VPC 時收到的相依項錯誤?

3 分的閱讀內容
0

當我嘗試刪除我的 VPC 時,我收到相依項錯誤。

簡短說明

刪除 VPC 時,也必須刪除其所有元件。這些元件包括子網路、安全群組、網路存取控制清單 (ACL)、路由表、網際網路閘道和 DHCP 選項。

解決方法

**注意:**如果您在執行 AWS Command Line Interface (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 之前若有必須移除的相依項時,則您會收到此錯誤。若要解決此錯誤,請完成下列步驟:

  1. 執行下列指令碼以尋找剩餘相依項:
    #!/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
    注意:在下列指令碼中,使用您的 VPC ID 值取代 VPC_ID。此外,請將 AWS_REGION 替換為您的 AWS 區域。使用具有適當權限的憑證來執行Describe API 呼叫。
  2. 刪除您在步驟 1 中識別的任何相依項。
  3. 刪除您的 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 服務。

若要移除相依服務,請完成下列步驟:

  1. 開啟 Amazon EC2 主控台
  2. 選取 VPC 所在的區域。
  3. 在導覽窗格的網路介面下,搜尋您想要刪除 VPC 的 VPC ID。
  4. 選取網路介面,然後選擇詳細資訊索引標籤。
  5. 檢閱描述,以查看網路介面連接至哪些資源。
  6. 刪除關聯的資源。
    **注意:**如果網路介面是主要介面,則當您刪除執行個體時,資源也會被刪除。

"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 與任何本機閘道路由表的關聯。

若要刪除電信業者閘道,請完成下列步驟:

  1. 開啟 Amazon VPC 主控台
  2. 在導覽窗格中,選擇電信業者閘道
  3. 選取電信業者閘道,選擇動作,然後選擇刪除電信業者閘道
  4. 刪除電信業者閘道對話方塊中,輸入 Delete,然後選擇刪除

若要取消 VPC 與任何本機閘道路由表的關聯,請完成下列步驟:

  1. 開啟 AWS Outposts 主控台
  2. 在導覽窗格中,選擇本機閘道路由表
  3. 選取路由表。
  4. 選擇動作,然後選擇檢視詳細資訊
  5. VPC 關聯中,選取要取消關聯的 VPC,然後選擇取消關聯

相關資訊

為什麼無法分離或刪除 Lambda 建立的彈性網路介面?

如何刪除與其他 AWS 帳戶共用的 VPC?

為什麼無法刪除申請者管理的 VPC 端點?

刪除您的 VPC