调度 aws lambda 函数以发送电子邮件

问题描述

我可以编写一个 lambda 函数,该函数将使用 SES 向特定用户发送电子邮件。我想要做的是制定某种计划任务来触发这个 lambda 函数。 lambda 函数应该接受 user-email 作为函数参数,因为不同的用户有不同的电子邮件,并且这个 lambda 函数应该在不同的时间为不同的用户触发。怎么能做到这一点?我已经对 SNS、SQS、CloudeWatch、步进函数进行了一些挖掘,但我感到困惑。有人可以帮我吗?

解决方法

这是一个 AWS 教程,向您展示如何编写使用 Lambda 运行时 API 的 Lambda 函数。本文档向您展示如何从 Lambda 函数(例如 Amazon DynamoDB)调用其他 AWS 服务。在此示例中,用户数据位于数据库中,而不是传递给 Lambda 函数(这与您描述的内容略有不同)。

使用计划事件定期调用 Lambda 函数。本教程将引导您完成所有步骤。

Creating scheduled events to invoke Lambda functions

,

以下是一些选项;

选项 - 1)

a) 观察者 = 一个 lambda,用于检查连接并检查 mongodb 以获取订阅/试用期即将结束的用户列表。有电子邮件列表和邮件正文的一部分,例如日期和其他详细信息,这些详细信息将用于起草此类用户的电子邮件(以 json 格式,密钥为电子邮件)

b) 命令执行器 = 一个 lambda,它将获取电子邮件和映射内容列表。遍历此列表并从列表中向用户发送电子邮件

c) Schedule a Serverless Workflow 使用 AWS 步骤函数使用/连接 lambda a) 和 b) 在此

其他信息:请参阅 Error handling in Step Functions 以获取负面测试用例

选项 - 2) 我不确定这是否可用于您拥有的 mongodb 设置;

a) 使用 MongoDB Scheduled Triggers

b) MongoDB Scheduled Triggers integrated via. AWS Eventbridge 通过发送电子邮件的逻辑映射到 AWS Lambda。

选项 3) 在单个 lambda 中组合观察器 (1.a) 和命令执行器 (1.b) 逻辑。使用 AWS cloudwatch event rule

根据您的要求安排此 lambda ,

如果您有少量用户,则为每个用户创建 CloudWatch 触发器。否则频繁触发该函数,例如每分钟 CW 并在一个发电机表中保存每个用户的最后一次。