如何在大型StepFunction调用中只显示失败的步骤?



当您运行了包含许多步骤(有时历史记录中有1000个事件)的长时间运行的Step Functions调用时,您可能会在控制台中看到几页后出现故障。我必须不停地点击"加载更多"可以看到实际的误差

一定有更好的办法,你怎么解决这个问题?

为了使这更容易,我们需要使用AWS CLI。

首先,确保我们可以通过从web控制台复制执行ARN来列出特定的执行,并使用CLI显示执行细节:

aws stepfunctions describe-execution --execution-arn <EXECUTION ARN>

回复应该看起来像这样:

{
"executionArn": "arn:aws:states:us-east-1:123456789012:execution:my-execution-id",
"stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:my-state-machine-name",
"status": "FAILED",
"startDate": "2021-10-28T08:31:04.138000+02:00",
"stopDate": "2021-10-28T08:33:37.471000+02:00",
"name": "my-execution-name",
"input": "{"foo":"bar"}"
}

为了显示执行的步骤,我们可以使用CLI列出执行历史。当我们处理一个有许多步骤的执行时,将列表反向排列并将结果的数量限制在更少的数,比如5,这是明智的。

aws stepfunctions get-execution-history --reverse-order --max-items 5 --execution-arn <EXECUTION ARN>

这很可能会显示失败的步骤,因为它通常在执行步骤的最后。

您可以在步骤函数上启用日志记录,然后将步骤函数日志加载到Log Insights中,并编写如下查询:

fields @timestamp, @message
| filter type like "TaskFailed"

,它将返回在您搜索的时间段内所有失败的类型任务。

相关内容

最新更新