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.