Я видел этот пост: веб-сервисы Amazon - возможно ли автоматически удалять объекты старше 10 минут в AWS S3? - Переполнение стека
Это говорит об удалении через 10 минут, и это нормально работает для меня с помощью Amazon SQS, но у нас есть ограничение максимум 15 минут. Теперь я пытаюсь использовать пошаговые функции.
Я создал конечный автомат для запуска лямбда-функции с временем ожидания 1800 секунд, а в состоянии задачи я дал лямбда-ARN, см. Ниже Лямбда:
import json
import boto3
def lambda_handler(event, context):
for record in event['Records']:
v = json.loads(record['body'])
for rec in v["Records"]:
bucketName = rec["s3"]["bucket"]["name"]
objectKey = rec["s3"]["object"]["key"]
#print("bucket is " + bucketName + " and object is " + objectKey )
sss = boto3.resource("s3")
obj = sss.Object(bucketName, objectKey)
obj.delete()
return {
'statusCode': 200,
'body': json.dumps('Delete Completed.')
}
Я включил CloudTrail и добавил корзину S3 в опции корзины и другую корзину в опции хранения. Затем я создал CloudWatch Event для мониторинга уровня объекта, чтобы активировать пошаговую функцию, которую я создал на первом шаге.
Теперь проблема с лямбдой, она не может извлечь события из функции шага об имени и объекте корзины. Кто-нибудь может помочь здесь?