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

如何在AWS Step Functions中批量获取/删除DynamoDB多条目?

AWS Step Functions 批量操作 DynamoDB 的实现方案

按前缀查询多条条目

Step Functions 自带的 DynamoDB 任务就能实现前缀查询,不用额外绕路:

  • 直接用 DynamoDB:Query 任务,配置 KeyConditionExpression 为 begins_with(pk, :prefix),再通过 ExpressionAttributeValues 传入具体的前缀值就行。示例配置如下:
{
  "Type": "Task",
  "Resource": "arn:aws:states:::dynamodb:query",
  "Parameters": {
    "TableName": "你的表名",
    "KeyConditionExpression": "begins_with(pk, :prefix)",
    "ExpressionAttributeValues": {
      ":prefix": {"S": "你的前缀内容"}
    }
  },
  "End": true
}
  • 如果有更复杂的过滤需求,也可以写个 Lambda 函数,在函数里执行 DynamoDB 的查询/扫描逻辑,再把结果返回给 Step Functions。

批量删除指定PK数组的条目

原生 DynamoDB 任务不支持直接传PK数组批量删,但有两种可行办法:

  • 用 DynamoDB:BatchWriteItem 任务,构造多个 DeleteRequest,每个请求对应一个PK(复合主键的话还要加SK)。示例配置:
{
  "Type": "Task",
  "Resource": "arn:aws:states:::dynamodb:batchWriteItem",
  "Parameters": {
    "RequestItems": {
      "你的表名": [
        {"DeleteRequest": {"Key": {"pk": {"S": "pk值1"}}}},
        {"DeleteRequest": {"Key": {"pk": {"S": "pk值2"}}}}
      ]
    }
  },
  "End": true
}

注意:BatchWriteItem 一次最多处理25条,超过这个数就得拆成批次,Step Functions 可以用 Map 状态来循环处理多批次。

  • 嫌麻烦的话也可以用 Lambda 函数,在函数里调用 DynamoDB 的 BatchWriteItem API,或者循环执行删除操作,适合条目数量多的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 18:31:05