Это звучит мне, как будто Помещение для проведения встреч не было правильно открыто как Ресурс так, чтобы это не могло быть двойное заказанный. Необходимо открыть Помещение для проведения встреч с реальным почтовым ящиком (не общедоступный календарь папки) и затем настроить ту учетную запись к "Автоматически снижению, конфликтующему приглашения на встречу".
Есть обычно 4 шага к тому, что вы ищете:
ec2-deregister
ec2-delete-bundle
(для S3) или ec2 -delete-snapshot
(для EBS). Имейте в виду, что снимки и изображения независимы. Вы можете создать том EBS из моментального снимка и использовать его как дополнительный диск, а не как загрузочный. Более того (в случае экземпляров Linux) можно создать новый образ из существующего снимка, что дает основания к идее, что не каждый, кто хочет удалить изображение, также хочет удалить связанный снимок (-ы). (Хотя вы можете зарегистрировать снимок для создания Windows AMI, AMI не запускается. )
Стоит отметить, что AWS не позволит вам удалить моментальный снимок, связанный с AMI, до отмены регистрации AMI.
Сосредоточившись на шагах 2 и 3 выше, вам сначала нужно найти связанные идентификаторы снимков. с AMI. Это должно быть указано как часть сопоставлений блочных устройств. Обычно корневой том EBS имеет точку монтирования / dev / sda1. Вы можете отменить регистрацию AMI из командной строки (или использовать консоль AWS), а затем удалить моментальный снимок (опять же, из командной строки или консоли AWS).
Если вам нужно выполнять эту задачу чаще, вы должны хочу сценарий процесса. Некоторые библиотеки, такие как Python Boto, включают функцию, которая делает именно это:
deregister_image(image_id, delete_snapshot=False)
Unregister an AMI.
Parameters:
image_id (string) – the ID of the Image to unregister
delete_snapshot (bool) – Set to True if we should delete the snapshot associated with an EBS volume mounted at /dev/sda1
Например, образец сценария (полностью непроверенный и просто скомпонованный - используйте на свой страх и риск!), Основанный на приведенном выше, может выглядеть так:
#!/usr/bin/env python
import os
import sys
def ec2delete(imageid=None):
conn = boto.ec2.connect_to_region('your_region', aws_access_key_id='your_key', aws_secret_access_key='your_secret')
conn.deregister_image(imageid, delete_snapshot=True)
if __name__ == '__main__':
from optparse import OptionParser
parser = OptionParser()
options, args = parser.parse_args()
sys.stderr.write("Deleting %s and snapshots\n" % str(args))
ec2delete(args)
Обновленный ответ из документов aws:
Надеюсь, это поможет таким, как я! :D
.awscli также может это сделать.
Сначала получите идентификатор шапшота, используя describe-images
:
aws ec2 describe-images --image-ids ami-0123456789
Затем отмените регистрацию изображения и удалите снимок:
aws ec2 deregister-image --image-id ami-0123456789
aws ec2 delete-snapshot --snapshot-id snap-9876543210
#!/bin/bash
#put your ami's in ami.txt
for i in `cat ami.txt`;
do
#put the regions in regions.txt
for r in `cat regions.txt`;do echo $r >>/dev/null;
for e in `cat regions.txt`;do aws ec2 describe-images --image-ids $i --region $r | grep "ImageId\|SnapshotId" | awk -F':' '{print $2}' | tr -d '"',',' | grep "snap" > snapshot.txt;
for s in `cat snapshot.txt`;do aws ec2 deregister-image --image-id $i --region $r;
aws ec2 delete-snapshot --snapshot-id $s --region $r;echo $i $s >> amidel.txt;done;done;
done;
done
#you can check the ami/snapshots which has been de-registered/deleted
Несколько дней назад у меня было такое же требование, поэтому я написал небольшой сценарий оболочки. Примечание: файл ami_list.txt должен содержать список изображений
#!/bin/bash
while read -r ami_id
do
if [[ -n "$ami_id" ]]; then
echo "describing the image : $ami_id"
describe_image=$(aws ec2 describe-images --image-ids "$ami_id")
response=$(echo "$describe_image"| jq .Images[].BlockDeviceMappings[].Ebs.SnapshotId | jq . -r)
aws ec2 deregister-image --image-id "$ami_id"
for snapshot in $response; do
echo "$snapshot"
aws ec2 delete-snapshot --snapshot-id "$snapshot"
done
unset describe_image
fi
done < ami_list.txt
образец файла ami_list.txt:
$cat ami_list.txt
ami-12345220520df4893
ami-123455b848e35cf5a