【问题标题】:Execute a lambda at a defined time which is based on user input在基于用户输入的定义时间执行 lambda
【发布时间】:2019-06-03 07:12:22
【问题描述】:
我有一个在线教室,我需要在课程开始时执行记录器 lambda 函数。执行时间取决于用户创建类的时间。那时我该如何运行该功能?我在 aws lambda 或无服务器框架中都没有找到这个选项。 aws 中还有其他服务可以帮助我吗?
【问题讨论】:
标签:
node.js
aws-lambda
scheduled-tasks
state-machine
aws-step-functions
【解决方案1】:
我在课堂开始时使用 aws step 函数的 wait 来执行我的 lambda。
stepFunctions:
stateMachines:
stepFunction:
events:
- http:
path: classroom/create
method: POST
name: classroom-state-machine
definition:
StartAt: RecordingWait
States:
RecordingWait:
Type: Wait
TimestampPath: "$.start"
Next: StartRecording
StartRecording:
Type: Task
Resource: arn:aws:lambda:ap-southeast-1:13######:function:consult-api-dev-StartRecorder
End: True
因此,当我创建教室时,我开始执行状态机,将课程开始时间作为状态机的输入。状态机会等到开始时间传入,然后进入下一个状态,执行录制的lambda函数。