我有一个python脚本生成pdf参与证书基于从Google表拉出的数据,并通过亚马逊SES发送到每个单独的电子邮件。我想在EC2中运行该脚本,以受益于始终免费的Amazon SES配额。是否有一个简单而快速的方法来触发/执行这个脚本从谷歌表更新名称和电子邮件后远程?
与其"触发"实例上的代码(这很难,因为您希望保持实例的安全),我建议采用另一种架构:
- Google Sheet向Amazon SQS队列发送消息
- 在EC2实例上运行的Python代码不断轮询SQS队列以检查消息(使用
receive_message(...,WaitTimeSeconds=20)
来减少调用的数量 - 如果找到消息,那么Python代码可以处理该信息(例如发送电子邮件),然后从队列 中删除该消息
这样,你的实例可以保持安全,而不需要打开它到互联网。
一些服务似乎提供了从Google Sheets向SQS发送消息的能力:
- AWS - SQS -发送消息与AWS API在新的工作表(共享驱动器,即时)从Google表API - Pipedream
- 定价方案| Appy Pie Connect
- 或者,您可以自己编写该功能
否则,你需要在EC2实例上运行一个web服务器,并让Google Sheet用你的请求"调用"web服务器。
或者,如果你想更花哨,你可以把你的代码转换成一个AWS Lambda函数,并使用API网关来"调用"代码。这样,您就不需要Amazon EC2实例,但是配置起来比较复杂。