gpt4 book ai didi

amazon-web-services - 通过AWS CLI删除默认VPC

转载 作者:行者123 更新时间:2023-12-04 08:18:09 25 4
gpt4 key购买 nike

启动新帐户时,Amazon将创建一个具有3个子网,1个安全组,1个ACL和1个Internet网关的新默认VPC。我想删除默认的vpc和与之关联的对象。我可以通过控制台执行此操作,但是我想通过aws cli实现此操作,并且遇到了麻烦。

当我尝试以下命令时:

aws ec2 delete-vpc --vpc-id $VpcId

控制台返回DependencyViolation错误:

调用DeleteVpc操作时发生客户端错误(DependencyViolation):vpc'vpc-13f53076'具有依赖项,无法删除。

所以我试图删除依赖项,但是它并不能全部使用!
  • 对于Internet网关,我遇到了相同的错误:

    调用DeleteInternetGateway操作时发生客户端错误(DependencyViolation):internetGateway'igw-d0f51bb5'具有依赖项,无法删除。
  • 用于默认安全组。我收到以下错误:

    调用DeleteSecurityGroup操作时发生客户端错误(CannotDelete):指定的组:“sg-acca7bc
    “name:”默认“不能被用户
  • 删除
  • 对于默认ACL,出现以下错误:

    调用DeleteNetworkAcl操作时发生客户端错误(InvalidParameterValue):无法删除默认网络ACL acl-d3ba77b6

  • 这是一个新帐户,除了由Amazon创建的默认vpc之外,没有创建任何其他内容。
    任何对正确方向的帮助或指导将不胜感激。

    最佳答案

    我需要遍历并删除所有区域中的所有默认VPC,并为此编写了脚本。可能会节省一些时间。需要aws cli和“jq”。

    #/usr/bin/env bash

    export REGIONS=$(aws ec2 describe-regions | jq -r ".Regions[].RegionName")

    for region in $REGIONS; do
    # list vpcs
    echo $region
    aws --region=$region ec2 describe-vpcs | jq ".Vpcs[]|{is_default: .IsDefault, cidr: .CidrBlock, id: .VpcId} | select(.is_default)"
    done

    read -p "Are you sure? " -n 1 -r
    echo # (optional) move to a new line
    if [[ $REPLY =~ ^[Yy]$ ]]
    then
    for region in $REGIONS ; do
    echo "Killing $region"
    # list vpcs
    export IDs=$(aws --region=$region ec2 describe-vpcs | jq -r ".Vpcs[]|{is_default: .IsDefault, id: .VpcId} | select(.is_default) | .id")
    for id in "$IDs" ; do
    if [ -z "$id" ] ; then
    continue
    fi

    # kill igws
    for igw in `aws --region=$region ec2 describe-internet-gateways | jq -r ".InternetGateways[] | {id: .InternetGatewayId, vpc: .Attachments[0].VpcId} | select(.vpc == \"$id\") | .id"` ; do
    echo "Killing igw $region $id $igw"
    aws --region=$region ec2 detach-internet-gateway --internet-gateway-id=$igw --vpc-id=$id
    aws --region=$region ec2 delete-internet-gateway --internet-gateway-id=$igw
    done

    # kill subnets
    for sub in `aws --region=$region ec2 describe-subnets | jq -r ".Subnets[] | {id: .SubnetId, vpc: .VpcId} | select(.vpc == \"$id\") | .id"` ; do
    echo "Killing subnet $region $id $sub"
    aws --region=$region ec2 delete-subnet --subnet-id=$sub
    done

    echo "Killing vpc $region $id"
    aws --region=$region ec2 delete-vpc --vpc-id=$id
    done
    done

    fi

    关于amazon-web-services - 通过AWS CLI删除默认VPC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26340690/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com