我在 AWS Step Functions 中有一个状态机,我想在该机器每次启动时以及它因任何原因(成功、失败等)结束时进行监控。根据 AWS 文档,每次状态机状态发生更改时,它都会生成一个事件,我可以使用事件总线规则捕获该事件。
我创建了一个事件规则如下:
{
"detail": {
"stateMachineArn": ["MY STATE MACHINE ARN"]
},
"detail-type": ["Step Functions Execution Status Change"],
"source": ["aws.states"]
}
不管怎样,无论我启动状态机执行多少次,规则都不会被触发。
如果我查看 Cloud Trail,我可以看到用户执行 StartExecution 的事件,但看不到步骤函数执行状态更改的事件。
我以为我会与禁用状态机的 CloudWatch 日志记录有关,因此我在所有级别将其打开,但这没有帮助。
你们中有人知道我可能做错了什么吗?
提前致谢!
经过一番调查,发现这些事件没有传递到自定义 eventbridge,而是传递到“默认”eventbridge,其中自定义与默认 eventbridge 的规则相同。可能是一个错误,因为我试图找到任何将其传递到默认 eventbridge 的配置,但什么也没找到。
{
"source": ["aws.states"],
"detail-type": ["Step Functions Execution Status Change"],
"detail": {
"status": ["RUNNING", "SUCCEEDED", "FAILED", "TIMED_OUT", "ABORTED"],
"stateMachineArn": ["arn:aws:states:<region>:123456789:stateMachine:<stateMachine>"],
"executionArn": [{
"prefix": "arn:aws:states:<region>:123456789:execution:<stateMachine>:"
}]
}
}