【发布时间】:2020-01-07 19:31:52
【问题描述】:
我使用无服务器框架构建了一些 AWS Lambda 函数管道。目前有五个步骤/功能,我需要它们按顺序运行,并且每个都只运行一次。大致的功能是:
- 通过 HTTP 请求触发函数,以 ID 响应。
- 访问和 API 以获取要下载的资源的 URL。
- 下载该资源并将副本上传到 S3。
- 更改该资源并将更改后的副本上传到 S3。
- 将更改的资源提交到不同的 API。
细节并不重要,但问题是:什么是最好的事件/触发器用于沿着这行函数向下移动?第一个是由 HTTP 调用触发的,但是第一个需要以某种方式触发第二个,然后第二个触发第三个,依此类推。
我使用 AWS SNS 编写了所有代码,但现在我已经将它部署到了 staging 中,我看到了 SNS often triggers more than once。我可以添加一堆代码来检测这一点,但我宁愿不这样做。而且问题也很复杂——如果第二个函数被触发两次,它会发送两个 SNS 通知来触发第三步。如果这些通知中的任何一个被加倍......最后一个函数可以被调用十次而不是一次并不是不合理的。
那么我最好的选择是什么?通过HTTP触发链?运动可能吗?我从未使用过除 HTTP 或 SNS 之外的触发器,所以我不确定我的选项是什么,以及哪些选项保证只会触发该函数一次。
【问题讨论】:
标签: aws-lambda amazon-sns serverless-framework