如何在大型 StepFunction 调用中仅显示失败的步骤?
How do I show only the failed steps in a large StepFunction call?
当您 运行 长时间 运行ning 调用包含许多步骤的 Step Functions 时(历史记录中有时有 1000 多个事件),您可能会遇到向下几页的失败在控制台中。我必须一直点击“加载更多”才能看到实际错误。
一定有更好的方法,你是怎么解决的?
为了使这更容易,我们需要使用 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>
这很可能会向您显示失败的步骤,因为它通常在执行步骤的末尾。
您可以在 step 函数上启用日志记录,然后将 step 函数日志加载到 Log Insights 中,并编写如下查询:
fields @timestamp, @message
| filter type like "TaskFailed"
这将 return 您搜索的时间段内所有失败类型的任务。
当您 运行 长时间 运行ning 调用包含许多步骤的 Step Functions 时(历史记录中有时有 1000 多个事件),您可能会遇到向下几页的失败在控制台中。我必须一直点击“加载更多”才能看到实际错误。
一定有更好的方法,你是怎么解决的?
为了使这更容易,我们需要使用 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>
这很可能会向您显示失败的步骤,因为它通常在执行步骤的末尾。
您可以在 step 函数上启用日志记录,然后将 step 函数日志加载到 Log Insights 中,并编写如下查询:
fields @timestamp, @message
| filter type like "TaskFailed"
这将 return 您搜索的时间段内所有失败类型的任务。