如何在 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 和邮件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 AWS Lambda 上的无服务器应用程序中存储和使用 HTML 模板(使用 AWS SAM)?
如何在 Lambda 函数中使用 AWS.CloudFront.Signer
如何在 AWS Lambda 中运行 AWS SDK Opsworks 命令?
如何将AWS API网关阶段指向特定的lambda函数别名?