Удалить объекты из S3 Buckets через 30 минут не работает - PullRequest
0 голосов
/ 20 февраля 2020

Я видел этот пост: веб-сервисы 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 для мониторинга уровня объекта, чтобы активировать пошаговую функцию, которую я создал на первом шаге.

Теперь проблема с лямбдой, она не может извлечь события из функции шага об имени и объекте корзины. Кто-нибудь может помочь здесь?

...