创建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即可。
发布于 2019-12-16 05:55:42
如果您刚刚下发了create-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发布于 2019-12-16 13:45:11
您可以只使用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*"https://stackoverflow.com/questions/59348187
复制相似问题