【发布时间】:2020-08-14 21:59:46
【问题描述】:
AWS StepFunctions 是一种服务,它基本上是一个状态机,其状态是某种形式任务的执行,通常是无服务器 (lambda) 任务。
CloudWatch events 可用于监控 StepFunction 状态机的启动/停止,但这些事件似乎只包含有关状态机执行作为一个整体的开始或结束(成功与否)的信息,不是执行进度,因为它逐步通过状态机的各个状态。例如,如果我有一个状态机执行,其中步骤是 A、B 和 C,那么很高兴知道状态机何时从 A 转换为 B 并从B 到 C,不仅仅是启动或停止。
是否可以通过某种机制接收 StepFunction 转换的通知,特别是状态机已进入的状态的名称?鉴于状态机可以长期存在,我不想进行轮询。这里最好的方法是什么?
【问题讨论】:
-
实际上我认为每次 StepFunction 状态更改都会发出一个事件。您添加的链接仅显示示例
-
不,不幸的是,当我有一个订阅源为
aws.states的所有事件的 Lambda 时,这就是我所看到的全部内容。如果你使用SendTaskSuccess或类似的东西来表示异步任务的完成,那么你会得到一个带有"detail-type": "AWS API Call via CloudTrail"的事件,否则就没有别的了。如果没有状态机进度的反馈,似乎有点垃圾。 -
为什么执行进入状态需要通知?
-
因为你很可能有一个外部服务需要在观察到状态机进入状态时采取行动——这意味着你不需要通过嵌入将状态机与观察者耦合观察者的逻辑转化为状态机的逻辑。
标签: amazon-web-services aws-lambda aws-step-functions