保存AWS Lambda调用数据的最佳方法



我使用AWS简单电子邮件服务(SES(发送电子邮件。我已经将SES配置为将传入的电子邮件保存到S3存储桶中,从而触发AWS Lambda功能。此函数读取新对象并将对象内容转发到备用电子邮件地址。

我想记录一些基本信息。在调用期间从我的AWS Lambda函数——电子邮件来自谁,发送给谁,是否包含任何链接,等等。

理想情况下,我会保存这些信息。到数据库,但由于AWS Lambda功能成本高昂(与其他AWS操作相对而言(,我希望尽可能高效地完成这项工作。

我想我可以用包含信息的查询字符串向专用端点发出HTTPS GET请求。我想要登录。因为我可以异步启动我的请求。在开始并继续处理时,我认为这可能是一种廉价而有效的方法。

这是个好方法吗?有其他选择吗?

我的Lambda函数不定期地启动,所以尽管Lambda函数在启动后保持了10分钟左右的活动时间,但由于AWS每100毫秒的使用量收费,数据库连接似乎很慢,成本也很高。

由于我可以想象每月收到数千封电子邮件,因此确保我的Lambda功能高效是最重要的成本。我保留了100个域名,所以我的数字不会被夸大。提前谢谢。

我不认为每月数千封电子邮件应该是个问题,这些云服务的开发考虑到了可扩展性,可以远远超出您建议的数量。

在坚持方面,我真的不明白——缺乏日志、指标——为什么你的数据库连接会很慢。从你使用AWS的那一刻起,它就会使用自己的内部基础设施,所以速度会很高,你不应该担心。

我不是计费专家,但从你所描述的来看,使用lambdas+S3+dynamoDB似乎对你的用例进行了高度优化。

从你描述的数据类型(电子邮件数据(来看,你似乎既没有内存问题(Lambda有内存限制,这可能会很痛苦(,也没有IO瓶颈。如果您能分享更多关于调用期间使用的内存和所花费时间的详细信息,那将是非常棒的。以及在每次lambda调用中存储的数据量。

我认为你可以很容易地将你的电子邮件数据的JSON字符串存储在dynamodb中,它应该非常无缝,而且成本不那么高。

还没有使用(SES(,但无论何时存储记录,都可以在DynamoDB上设置触发器,以防您想要使用另一个lambda。您可以将S3+dyneDB组合在一起。存储记录时,只需将包含该记录的文件上传到新的S3键,并使用指向新S3对象的指针更新DynamoDB中的行

DynamoDB+S3

您现在可以使用AWS EFS持久化数据。

相关内容

最新更新