Skip to content
Advertisement

How to describe snapshots by OwnerIds and Filters using boto3

How to describe snapshots owned by me and filtering by tag simultaneously?

It describe snapshots owned by me with code below:

import boto3
region_src = 'us-east-1'
client_src = boto3.client('ec2', region_name=region_src)

def get_snapshots_src():
    response = client_src.describe_snapshots(OwnerIds=['012345678900'])
    return response["Snapshots"]

snap = get_snapshots_src()
print(*snap, sep="n")

But when I add “Filters”, its starts ignoring “OwnerIds” and filtering only by tag.

client_src.describe_snapshots(OwnerIds=['012345678900'],Filters=[{'Name': 'tag:Disaster_Recovery', 'Values': ['Full']}])

I’m follow an official boto3 documentation: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.describe_snapshots

Advertisement

Answer

I think the Filters and OwnerIds options are working separately. I expect that the OwnerIds option is an abbreviation of the Filters option for owner-id, because I also got the result that the OwnerIds option is ignored.

And so, you can use the filter option such as

    Filters=[
        {
            'Name': 'tag:key',
            'Values': [
                'value'
            ]
        },
        {
            'Name': 'owner-id',
            'Values': [
                'value'
            ]
        }
    ]

and it will work well same as me.


Filters (list) --
The filters.

description - A description of the snapshot.
encrypted - Indicates whether the snapshot is encrypted (true | false )
owner-alias - Value from an Amazon-maintained list (amazon | self | all | aws-marketplace | microsoft ) of snapshot owners. Not to be confused with the user-configured AWS account alias, which is set from the IAM console.
owner-id - The ID of the AWS account that owns the snapshot.
progress - The progress of the snapshot, as a percentage (for example, 80%).
snapshot-id - The snapshot ID.
start-time - The time stamp when the snapshot was initiated.
status - The status of the snapshot (pending | completed | error ).
tag :<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA , specify tag:Owner for the filter name and TeamA for the filter value.
tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.
volume-id - The ID of the volume the snapshot is for.
volume-size - The size of the volume, in GiB.
(dict) --
A filter name and value pair that is used to return a more specific list of results from a describe operation. Filters can be used to match a set of resources by specific criteria, such as tags, attributes, or IDs. The filters supported by a describe operation are documented with the describe operation.
User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement