是否有任何 AWS 服务可以让 API 网关等待,直到它从另一个 AWS 服务(Lambda 除外)接收数据?

Is there any AWS service which can make API gateway wait until it receives data from another AWS service (apart from Lambda)?

我想要的

  1. Lambda 函数在文件上传到存储桶时触发。
  2. Lambda 对数据执行一些处理并将其添加到 DynamoDB。
  3. 一段时间后,会调用 API 获取数据。

我试过的

  1. API 网关后面的 DynamoDB:如果过早发出请求,则没有数据。
  2. 调用 API 网关时会触发 S3 后面的 lambda:我希望在文件上传后立即开始处理。

有什么问题

我想通过立即开始处理来利用两次调用之间的时间间隔。但是,如果过早地提出第二个请求,则不会返回任何数据。我可以添加第二个 Lambda,这会导致 API 网关等待数据准备好(API 网关超时 29 秒)。但是有没有针对这种情况的定制服务,可以让 API 网关等待(Lambda 替代 29 秒等待)?

没有这样的服务,这是有充分理由的

API 网关实际上会等到 DynamoDB 响应 但 DynamoDB 会立即响应 并返回未找到的结果。因此,您要求的逻辑更像是

API Gateway should poll DynamoDB continously until 29 seconds or a result is found

这不受本地支持,但您可以按照您的建议进行操作(使用 Lambda 连续轮询,直到获得结果)

或者更简单:让客户端不断调用API网关,直到找到结果