我正在 CDK 中开发一个 Step Function,它主要是一个 Lambda 链;
lambda_1
.next(lambda_2)
.next(lambda_3)
.next(lambda_4)
.next(lambda_5)
每当任何 Lambda 抛出错误(已处理或未处理)时,我都需要能够记录错误,我打算在另一个 Lambda 中执行此操作,因为我需要执行一些清理。现在,我可以通过从 Step-Function-Failed 事件触发 Lambda 来完成此操作,但为了可见性,我宁愿将日志记录保留为 Step Function 中的一个步骤。我已经查看了文档,找不到可用
addCatch
方法的通用位置。
有没有办法在CDK中的Step Function中添加catch来捕获所有步骤抛出的错误?
您无法直接为所有状态设置“全局”catch,但可以通过将所有任务状态的 catch 处理程序指向相同的回退状态来实现相同的结果。
这在 CDK 中很容易。您的
LambdaInvoke
任务有一个 addCatch 方法,它们继承自 TaskStateBase:
myTasks.forEach((task: tasks.TaskStateBase) => {
task.addCatch(myFallbackState);
});