
Мы автоматически создаем экземпляры EC2 как ReviewApps. Рецензенты должны уничтожать экземпляры ec2, но это происходит не всегда.
Итак, я хотел бы написать скрипт (Lambda, Terraform и т. д.), чтобы экземпляры EC2 для этого конкретного пользователя AWS автоматически уничтожались через X дней. Есть ли известные способы его выполнения?
решение1
Теперь все работает со следующим кодом:
#!/usr/bin/env python3
import boto3
import datetime
from botocore.config import Config
print ("############### EC2 Cleanup Start ###############")
my_config = Config(
region_name = 'eu-central-1',
)
ec2 = boto3.resource('ec2', config=my_config)
# Delete AWS instances older than 14 days
date_filter = (datetime.datetime.now() - datetime.timedelta(days=14)).strftime("%Y-%m-%d")
instances = ec2.instances.filter(Filters=[
{'Name':'launch-time', 'Values':[date_filter+'*']},
{'Name':'tag-value', 'Values':['review-app-*']}
])
for instance in instances:
print(instance.id, instance.terminate())
print ("############### EC2 Cleanup Done ###############")