获取特定VPC的VPC-ID

时间:2019-12-15 21:23:06

标签: amazon-web-services aws-cli amazon-vpc

创建VPC之后,如何通过aws ec2 describe-vpcs从特定VPC仅grep 1个VPC-ID,以便可以将VPC ID传递到脚本中进行下一步,我知道我可以手动查看从该命令或从AWS控制台,

例如:

aws ec2 describe-vpcs --vpc-ids |grep VpcId
            "VpcId": "vpc-00a0338c2f671a77c",
            "VpcId": "vpc-0b3697513d5987516",
            "VpcId": "vpc-061e25f5f78877798",

它给了我所有人,或者:

aws ec2 describe-vpcs --vpc-ids |grep -i ansible
                    "Value": "ANSIBLE_VPC",

但是我只需要从命令中获取该特定VPC的VPC-ID。

2 个答案:

答案 0 :(得分:2)

如果您刚刚发出了create-vpc命令,则该VPC的VPC ID将已返回以响应该命令:

输出:

{
    "Vpc": {
        "CidrBlock": "10.0.0.0/16",
        "DhcpOptionsId": "dopt-5EXAMPLE",
        "State": "pending",
        "VpcId": "vpc-0a60eb65b4EXAMPLE",    <-- This is the VPC ID
        "OwnerId": "123456789012",
        "InstanceTenancy": "default",
        "Ipv6CidrBlockAssociationSet": [],
        "CidrBlockAssociationSet": [
            {
                "AssociationId": "vpc-cidr-assoc-07501b79ecEXAMPLE",
                "CidrBlock": "10.0.0.0/16",
                "CidrBlockState": {
                    "State": "associated"
                }
            }
        ],
        "IsDefault": false,
        "Tags": []
    }
}

因此,您可以创建VPC并存储其ID,如下所示:

$ ID=`aws ec2 create-vpc --cidr-block 10.0.0.0/16 --query Vpc.VpcId --output text`

$ echo $ID
vpc-0fb4d08f9d6501e94

相反,如果您正在寻找具有给定名称标签的VPC的VPC ID,则可以使用:

$ ID=`aws ec2 describe-vpcs --filter Name=tag:Name,Values=ANSIBLE_VPC --query Vpcs[].VpcId --output text`

$ echo $ID
vpc-0fb4d08f9d6501e94

答案 1 :(得分:0)

为此,您可以使用aws cli以及过滤器和查询:

aws ec2 describe-vpcs --filters Name=tag:Name,Values=ANSIBLE_VPC --query "Vpcs[].VpcId" --output text"

或者您可以结合使用--filters命令和grep来完成任务:

aws ec2 describe-vpcs --filters Name=tag:Name,Values=ANSIBLE_VPC | grep VpcId | grep -oh "vpc-\w*"