首页 > 解决方案 > 调用在 Django App 中编写的 AWS Lambda 函数

问题描述

我在我的 django 应用程序中编写了一些 cronjobs,我想使用 AWS Lambda 服务安排这些作业。有人可以推荐一个好的方法来完成这项工作吗?

标签: djangoamazon-web-servicescrondjango-rest-frameworkaws-lambda

解决方案


我将根据问题的主题而不是正文来回答这个问题,因为我不确定 OP 对“我想使用 AWS Lambda 安排这些作业”的含义。

如果您只想触发基于 cronjob 的 Lambda 函数,您可以使用 CloudWatch Events 来实现这一点。您可以指定常规 cron 表达式或 AWS 提供的一些内置表达式,例如 rate(1 min) 将每分钟运行您的函数。您可以在文档中查看如何通过 CloudWatch Events 触发 Lambda 函数。查看cron/rate以查看所有可用选项。

CloudWatch Events 只是触发您的 Lambda 函数的众多选项之一。您的函数可以对一大堆 AWS 事件做出反应,包括 S3、SQS、SNS、API 网关等。您可以在此处查看完整的事件列表。只需选择一个适合您的需求,您就可以开始了。

OP 更新后编辑:是的,您正在寻找的是 CloudWatch Events。让 Lambda 轮询您的数据库后,您只需在 CloudWatchEvents 中创建一个规则并让您的 Lambda 由它触发。请参阅以下图片以获取指导。

转到 CloudWatch,单击事件并选择计划作为事件源 在此处输入图像描述(确保设置您自己的 Cron 表达式或选择预定义的速率值)在右侧,相应地选择您的 Lambda 函数。

完成后单击“配置详细信息”,为其命名,选中“启用”框,最后单击“创建”。

返回到您的 Lambda 函数,您应该会看到它现在由 CloudWatch Events 触发(左侧的列) 在此处输入图像描述

您的 lambda 现在已正确配置,并将每天执行一次。


推荐阅读