如何在 AWS Lambda 中使用 cURL 和邮件

Posted

技术标签:

【中文标题】如何在 AWS Lambda 中使用 cURL 和邮件【英文标题】:How to use cURL and mail in AWS Lambda 【发布时间】:2017-06-20 17:56:37 【问题描述】:

我运行一台 Linux 机器,每小时有 50 多个 cron 作业,格式如下:

00 00 * * * /usr/bin/curl http://domain.com/page.php/reports | mail -s "domain.com report cron successful execution" email@otherdomain.com

上面的cron:

    curl命令的输出发送到管道 将输出发送到 email@otherdomain.com,主题为 “domain.com 报告 cron 成功执行”

如何设置这些 cron 以与 AWS Lambda 一起使用,因为我不希望单独的服务器只用于这些 cron 作业。

如果可能的话,我可以设置 AWS SES 来使用它。

【问题讨论】:

您不能只是在 linux 服务器中设置一个 cron 作业,然后以某种方式神奇地说“在 Lambda 上运行”。您必须实际编写一个 AWS Lambda 函数,并且在该 Lambda 函数中,使用 AWS SES SDK 而不是发出curl 命令可能更有意义。请研究一下 AWS Lambda 是什么。 我知道我必须写一个函数。 curl 命令生成要通过邮件发送的输出。无论如何,感谢您的意见。 【参考方案1】:

要安排 CRON,您应该使用 CloudWatch Events。您可以设置将触发 CloudWatch 事件的 CRON 表达式。这个事件可以反过来trigger a Lambda function。

您的 Lambda 函数可以使用非常棒的 requests 包进行 HTTP 调用。 Lambda here 上的部署说明。如果您不想将 requests 与您的 Lambda 函数打包,您也可以使用不太容易使用的 urllib2 模块来替代 requests

至于发送电子邮件,AWS SES 将是最简单的途径。您也可以使用 email 模块,尽管我从未在 Lambda 函数的上下文中使用过它。

【讨论】:

感谢您的简单解释和有关如何继续前进的见解。

以上是关于如何在 AWS Lambda 中使用 cURL 和邮件的主要内容,如果未能解决你的问题,请参考以下文章