【问题标题】:How to use cURL and mail in AWS Lambda如何在 AWS Lambda 中使用 cURL 和邮件
【发布时间】: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:

  1. curl命令的输出发送到管道
  2. 将输出发送到 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 命令生成要通过邮件发送的输出。无论如何,感谢您的意见。

标签: linux amazon-web-services curl lambda aws-lambda


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您的简单解释和有关如何继续前进的见解。
猜你喜欢
  • 2020-04-08
  • 2020-03-25
  • 2019-11-28
  • 2019-12-13
  • 1970-01-01
  • 1970-01-01
  • 2023-02-01
  • 2017-09-27
  • 1970-01-01
相关资源
最近更新 更多