Если вы спрашиваете, как исправить код, чтобы он удалял только снимки, которые:
- Имеют данный тег, И
- прошел срок хранения
затем внимательно посмотрите на свой код.
Эта часть:
# Get list of Snaps with Tag 'globalVars['findNeedle']'
snaps_to_remove = ec2_client.describe_snapshots(OwnerIds=account_ids,Filters=filters)
получает список снимков по тегу. Отлично!
Тогда эта часть:
# Get the snaps that doesn't have the tag and are older than Retention days
all_snaps = ec2_client.describe_snapshots(OwnerIds=account_ids)
for snap in all_snaps['Snapshots']:
if snap['StartTime'].strftime('%Y-%m-%d') <= snap_older_than_RetentionDays:
snaps_to_remove['Snapshots'].append(snap)
получает НОВЫЙ список снимков и проверяет сохранение.
Затем полученный snaps_to_remove
содержит результаты ОБА из них.
Вам нужно будет объединить свою логику, чтобы она добавляла только снимки, соответствующие обоим критериям, а не составляла список снимков по отдельности.