Search code examples
amazon-web-servicesamazon-ec2amazon-vpcaws-cli

What is the correct syntax for filtering by tag in describe-vpcs?


I am trying to understand a aws ec2 cli call. I am looking to describe all VPC then filer on a custom tag (vpcname=myvpc, however after trying multiple combinations I keep getting conflicting errors about the format and use of --filters. using as a reference [http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpcs.html][1]

aws --profile myProfile --region eu-west-1 ec2 describe-vpcs --filters vpcname,myvpc

however this returns

Error parsing parameter '--filters': should be: Key value pairs, where values are separated by commas, and multiple pairs are separated by spaces.
--filters Name=string1,Values=string1,string2 Name=string1,Values=string1,string2

so trying

aws --profile myProfile --region eu-west-1 ec2 describe-vpcs --filters Name=vpcname,Values=myvpc

and it returns

A client error (InvalidParameterValue) occurred when calling the DescribeVpcs operation: The filter 'vpcname' is invalid

so trying a few other combinations

aws --profile myProfile --region eu-west-1 ec2 describe-vpcs --filters tag :Name=vpcname,Values=myvpc

Error parsing parameter '--filters': should be: Key value pairs, where values are separated by commas, and multiple pairs are separated by spaces.
--filters Name=string1,Values=string1,string2 Name=string1,Values=string1,string2

Any advice on how I format this request?


Solution

  • You got pretty close to solving it -- the only problem is that you are not specifying a valid filter for describe-vpcs. Here's the filter that would be relevant to your use case:

    tag:key=*value* - The key/value combination of a tag assigned to the resource.
    

    So when it is asking for Name=string1,Values=string1..., it expects:

    • Name=tag:TagName
    • Values=TagValue

    Try this instead, works for me locally with a different custom tag:

    aws ec2 describe-vpcs --filters Name=tag:vpcname,Values=myvpc