我有两个lambda函数:
- func1
- func2
func1按计划每小时被调用(在template.yaml中定义为事件(。
我需要在成功完成func1时调用func2。
如何在不在func1代码中调用func2的情况下实现此目标?云形式模板中有没有办法实现这一目标?使用事件可能是?
步骤函数是您要使用的服务:https://aws.amazon.com/step-functions/getting-started/
这是链接您Lambdas的"官方"方法,我实际上已经实施了2年前的解决方案。您可以调整Lambda链每个节点的输入和输出参数。当然,您可以编写CF来提供SF状态机。
您确实需要将Cloudwant事件规则目标从触发单个Lambda触发SF状态计算机。但是我认为这根本不是一个重大的变化。
我确实在云形式中保持了SF状态机JSON的经验很差,但是如果您的链条只有2个lambdas,则可能会有所改善,而且还不错。现在看来,步骤功能比仅仅是lambda链式服务更强大。
如果您不想直接从func1调用func2,则可以:
- 在func1中向SNS主题通知,然后将func2订阅到该主题
- 在func1中向SQS队列输入消息,然后使用该队列触发func2
- 在func1中向SNS主题发出通知,然后将SQS队列订阅到该主题,然后触发该队列的Func2。这就是称为粉丝模式,对于实现并行处理很有用。
- 最后,使用步骤函数,特别是如果您实现了更多精心设计的工作流程,而不仅仅是将两个功能串在一起。
- 您甚至可以触发func2 func1 的CloudWatch日志