Amazon web services 有没有办法从AWS Step函数中读取S3文件的内容?

Amazon web services 有没有办法从AWS Step函数中读取S3文件的内容?,amazon-web-services,amazon-s3,aws-lambda,aws-step-functions,Amazon Web Services,Amazon S3,Aws Lambda,Aws Step Functions,我有一个特定的工作流,其中我希望将500个json字符串的列表从lambda函数传递到step函数(stepFunction1),然后在该step函数的映射状态下迭代该列表。从这里开始,我想将列表中的每一项传递给一个单独的步骤函数(stepFunction2),在该函数中将完成额外的工作 我的问题是,当传递到stepFunction1时,我的500个json字符串列表超过了AWS服务限制。我曾尝试将列表拆分为几个较小的部分,但这会导致多次调用同时运行的stepFunction1,这是由于其他限制

我有一个特定的工作流,其中我希望将500个json字符串的列表从lambda函数传递到step函数(
stepFunction1
),然后在该step函数的映射状态下迭代该列表。从这里开始,我想将列表中的每一项传递给一个单独的步骤函数(
stepFunction2
),在该函数中将完成额外的工作


我的问题是,当传递到
stepFunction1
时,我的500个json字符串列表超过了AWS服务限制。我曾尝试将列表拆分为几个较小的部分,但这会导致多次调用同时运行的
stepFunction1
,这是由于其他限制而无法实现的。我的下一个想法是尝试将json字符串列表存储在S3存储桶中,从
stepFunction1
访问它,然后从那里迭代它。有没有办法做到这一点?是否可以从AWS状态机读取S3中的文件?我在这里有点困惑。

一种解决方案是将项目存储在Amazon DynamoDB表中,并直接从AWS Step函数访问它们

下面是一个如何从DynamoDB检索项目的示例:

"Read Next Message from DynamoDB": {
  "Type": "Task",
  "Resource": "arn:aws:states:::dynamodb:getItem",
  "Parameters": {
    "TableName": "MyTable",
    "Key": {
      "MessageId": {"S.$": "$.List[0]"}
    }
  },
  "ResultPath": "$.DynamoDB",
  "Next": "Do something"
}

您可以在文档中找到有关的更多信息。

Step函数与AWS Lambda函数配合使用非常好,您可以轻松设计一个漂亮的工作流

您可以从lambda读取S3。最后,您的lambda可以单独工作,并且是step函数的一部分


我建议您首先创建一个lambda函数,读取并处理s3文件,然后尝试使用stepfunction(如果它适合您的场景)。

这是一个好主意。所以,需要明确的是,应该可以从step函数迭代DynamoDB表?