Python 30分钟不工作后从S3存储桶中删除对象

Python 30分钟不工作后从S3存储桶中删除对象,python,amazon-web-services,amazon-s3,aws-lambda,aws-step-functions,Python,Amazon Web Services,Amazon S3,Aws Lambda,Aws Step Functions,我看过这个帖子: 它说在10分钟后删除,这对我使用AmazonSQS很好,但我们的限制是最多15分钟。现在我正在尝试使用Step函数 我创建了一个状态机来触发一个Lambda函数,等待时间为1800秒,在任务状态下,我给出了Lambda ARN,请参见下面的Lambda: import json import boto3 def lambda_handler(event, context): for record in event['Records']: v = json.loads(rec

我看过这个帖子:

它说在10分钟后删除,这对我使用AmazonSQS很好,但我们的限制是最多15分钟。现在我正在尝试使用Step函数

我创建了一个状态机来触发一个Lambda函数,等待时间为1800秒,在任务状态下,我给出了Lambda ARN,请参见下面的Lambda:

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 bucket in bucket选项和其他bucket in storage选项。然后,我为对象级监控创建了CloudWatch事件,以触发我在第一步中创建的step函数


现在的问题是Lambda,它无法从步骤函数中获取关于bucket名称和对象的事件。有人能帮忙吗?

如果使用Amazon SQS的原始10分钟版本对您有效,为什么不简单地将延迟更改为15分钟?因此,您的问题在于检索存储桶名称和密钥?当AmazonS3Events发送通知时,它会将此信息包含在消息中,该消息通过
事件发出。由于您使用的是Step函数,您需要找到一种方法来保存该信息,以便通过Lambda函数。我需要30分钟,最大延迟为15分钟,无论如何我让它工作了,语法有一些问题