为添加到S3的存储桶创建Lambda Function AWS

时间:2018-04-22 16:15:53

标签: amazon-s3 aws-lambda

我们要求在使用AWS Lambda创建存储桶时在dynamodb表中创建项目,我们将不胜感激任何帮助

3 个答案:

答案 0 :(得分:0)

根据亚马逊:“启用通知是一个桶级操作;也就是说,您将通知配置信息存储在与存储桶关联的通知子资源中”

之前的声明引用了AWS S3文档Configuring Amazon S3 Event Notifications。这意味着存储桶必须存在,并且它位于您创建和配置通知事件的特定存储桶上。基本上:您无法在存储桶创建时生成通知事件。

我建议作为备用解决方案来考虑一个监视现有s3存储桶列表的计划进程,并在创建新存储桶时将记录写入DynamoDB(列表中显示新存储桶) )。以下内容:Creating, Listing, and Deleting Amazon S3 Buckets说明了使用Java SDK可以完成的一些示例,但也可以在其他语言中找到相同的内容(请参阅: 列表存储区 )。

注意: 您可以查看以下教程:Schedule AWS Lambda Functions Using CloudWatch Events,作为在计划/间隔上运行lambda的可能方法之一。

访问Bucket对象属性可以为您提供额外的信息,例如存储桶创建日期,存储桶拥有者等(可以找到存储桶类的详细信息here

答案 1 :(得分:0)

如果要从lambda创建S3存储桶,则相同的lambda可以向dynamoDB添加项目。您的lambda角色应该有权将项添加到dynamoDB。

答案 2 :(得分:0)

要实现这一目标,您可以将cloud custodian与lambda一起使用。 在云托管中有一种方法可以自动添加用户名标签enable encryption等,同时创建一个s3桶,你可以添加你的自定义逻辑并插入添加用户名标签等你可以使用boto3来将存储桶值添加到DynamoDB。