微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以在步骤函数的映射状态内迭代DynamoDB表?

如何解决是否可以在步骤函数的映射状态内迭代DynamoDB表?

基本上就是标题所说的。我已经阅读了文档:

https://docs.aws.amazon.com/step-functions/latest/dg/connect-ddb.html

这描述了如何从step函数从DynamoDB表中获取单个信息。我想做的是遍历整个表并开始为每个项目执行另一个状态机。每个新状态机将有一个单独的项目作为输入。我尝试了以下代码,很遗憾,这些代码不起作用:

{
  "StartAt": "OuterFunction","States": {
    "OuterFunction": {
      "Type": "Map","Iterator": {
        "StartAt": "InnerFunction","States": {
          "InnerFunction": {
            "Type": "Task","Resource": "arn:aws:states:::dynamodb:getItem.sync","Parameters": {
              "StateMachineArn":"other-state-machine-arn","TableName": "TestTable"
            },"End": true
          }
        }
      },"End": true
    }
  }
}

实际上是否可以通过这种方式遍历DynamoDB表?

解决方法

不,getItem 旨在获取特定的 DynamoDB 文档。您需要编写自定义 Lambda 来 .query().scan() 您的表,然后使用 Map 步骤迭代结果(当时很可能您不需要 getItem ,因为您可以通过查询/扫描操作加载所有数据)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。