You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Step Functions ListExecutions时如何为statusFilter参数传入多个值

核心结论

AWS Step Functions的ListExecutions接口不支持直接为statusFilter参数传入多个状态值,该参数仅接受单个枚举值作为合法输入。

问题原因

statusFilter的合法枚举取值仅包含以下6个单个状态:RUNNING、SUCCEEDED、FAILED、TIMED_OUT、ABORTED、PENDING_REDRIVE,你使用的多值拼接写法不符合接口参数校验规则,因此会触发报错。

可行实现方案

方案1(推荐):多次调用接口后合并结果

针对你需要查询的每个目标状态分别调用ListExecutions接口,最后合并所有接口返回的执行记录即可。该方案利用服务端过滤能力,返回数据量小、执行效率高,支持拉取大量历史执行记录。
代码示例如下:

import boto3

client = boto3.client('stepfunctions')
STEP_FUNCTION_STATE_MACHINE_ARN = "替换为你的状态机ARN"
# 所有非RUNNING的目标状态
TARGET_STATUSES = ["SUCCEEDED", "FAILED", "TIMED_OUT", "ABORTED", "PENDING_REDRIVE"]
all_non_running_executions = []

for status in TARGET_STATUSES:
    next_token = None
    # 处理分页逻辑,拉取当前状态的所有执行记录
    while True:
        request_params = {
            "stateMachineArn": STEP_FUNCTION_STATE_MACHINE_ARN,
            "statusFilter": status
        }
        if next_token:
            request_params["nextToken"] = next_token
        response = client.list_executions(**request_params)
        all_non_running_executions.extend(response["executions"])
        next_token = response.get("nextToken")
        if not next_token:
            break

方案2:拉取全量记录后本地过滤

如果你的状态机执行总数量较少(单页即可返回所有记录),可以不传statusFilter参数拉取全量执行记录,再在本地代码中做状态过滤。该方案仅需调用一次接口,但数据量大时分页成本高、传输冗余数据多。
代码示例如下:

import boto3

client = boto3.client('stepfunctions')
STEP_FUNCTION_STATE_MACHINE_ARN = "替换为你的状态机ARN"

all_executions = []
next_token = None
while True:
    request_params = {"stateMachineArn": STEP_FUNCTION_STATE_MACHINE_ARN}
    if next_token:
        request_params["nextToken"] = next_token
    response = client.list_executions(**request_params)
    all_executions.extend(response["executions"])
    next_token = response.get("nextToken")
    if not next_token:
        break

# 本地过滤非RUNNING状态的记录
all_non_running_executions = [item for item in all_executions if item["status"] != "RUNNING"]

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 03:06:04