Python boto3 步骤函数列表执行过滤器

Python boto3 step function list executions filter

我正在尝试使用 boto3 中的 list_executionsdescribe_execution 函数检索过去特定的步骤函数执行输入,首先检索所有调用,然后获取执行输入(我不能直接使用 describe_execution,因为我不知道完整的状态机 ARN)。但是,list_executions 不接受过滤器参数(例如“名称”),因此无法 return 部分匹配,而是 return 所有(成功)执行。

目前的解决方案是列出所有执行,然后遍历列表并 select 正确的执行。问题是这个函数可以 return 最多 1000 条最新记录(根据文档),这很快就会成为一个问题,因为将有超过 1000 次执行,我需要获取旧的执行。

有没有办法在 list_executions/describe_execution 函数中指定一个过滤器来检索部分过滤的执行,例如。使用前缀?

import boto3
sf=boto3.client("stepfunctions").list_executions(
    stateMachineArn="arn:aws:states:something-something",
    statusFilter="SUCCEEDED",
    maxResults=1000
)

你是对的,像 ListExecutions 这样的 SFN API 没有公开其他过滤选项。尽管如此,这里有两个想法可以让您更轻松地搜索执行输入:

  1. 使用 ListExecutions Paginator 帮助循环浏览响应项。
  2. 如果您事先知道哪些输入是感兴趣的,请将任务添加到状态机以将执行输入和 ARN 持久保存到 DynamoDB table 中,使后续搜索更容易。