最近忘了把vpc 删干净导致又被收了冤大头钱

在删除vpc 的收发现又eni在使用,但是忘了是哪个资源在占用
先用命令行把占用的资源找出来停掉
使用 AWS 命令行界面(CLI)来查看 VPC 的使用情况
-  列出子网: aws ec2 describe-subnets --filters "Name=vpc-id,Values=<your-vpc-id>"
-  列出安全组: aws ec2 describe-security-groups --filters "Name=vpc-id,Values=<your-vpc-id>"
-  列出网络接口: aws ec2 describe-network-interfaces --filters "Name=vpc-id,Values=<your-vpc-id>"
添加下面脚本彻底删除所有vpc资源
#!/bin/bash
# 设置要删除的网络接口 ID
ENI_ID="eni-0650500227c9ffa7a"
# 函数:检查并解除与 ENI 关联的实例
terminate_instances() {
    echo "查找与 ENI 关联的实例..."
    INSTANCE_IDS=$(aws ec2 describe-instances --filters "Name=network-interface.id,Values=$ENI_ID" --query "Reservations[].Instances[].InstanceId" --output text)
    if [ -n "$INSTANCE_IDS" ]; then
        echo "终止以下实例: $INSTANCE_IDS"
        aws ec2 terminate-instances --instance-ids $INSTANCE_IDS
        echo "正在等待实例终止..."
        aws ec2 wait instance-terminated --instance-ids $INSTANCE_IDS
    else
        echo "没有找到与 ENI 关联的实例。"
    fi
}
# 函数:解除与 ENI 关联的弹性 IP
disassociate_elastic_ips() {
    echo "解除与 ENI 关联的弹性 IP..."
    ALLOC_IDS=$(aws ec2 describe-addresses --filters "Name=network-interface-id,Values=$ENI_ID" --query "Addresses[].AllocationId" --output text)
    for ALLOC_ID in $ALLOC_IDS; do
        echo "解除弹性 IP: $ALLOC_ID"
        aws ec2 disassociate-address --allocation-id $ALLOC_ID
    done
}
# 函数:查找并处理与 ENI 关联的负载均衡器
detach_from_load_balancers() {
    echo "查找与 ENI 关联的负载均衡器..."
    LOAD_BALANCERS=$(aws elbv2 describe-load-balancers --query "LoadBalancers[?contains(NetworkInterfaces[].NetworkInterfaceId, '$ENI_ID')].LoadBalancerArn" --output text)
    if [ -n "$LOAD_BALANCERS" ]; then
        echo "找到关联的负载均衡器: $LOAD_BALANCERS"
        for LB in $LOAD_BALANCERS; do
            # 这里需要根据负载均衡器的类型和配置来具体实现
            echo "请手动从负载均衡器 $LB 中移除网络接口。"
        done
    else
        echo "没有找到与 ENI 关联的负载均衡器。"
    fi
}
# 函数:删除网络接口
delete_network_interface() {
    echo "删除网络接口 $ENI_ID..."
    aws ec2 delete-network-interface --network-interface-id $ENI_ID
    if [ $? -eq 0 ]; then
        echo "网络接口 $ENI_ID 删除完成。"
    else
        echo "删除网络接口时发生错误。请检查是否还有其他依赖。"
    fi
}
# 主程序
terminate_instances
disassociate_elastic_ips
detach_from_load_balancers
delete_network_interface


















