gpt4 book ai didi

amazon-web-services - 使用 AWS lambda 的异步后台作业

转载 作者:行者123 更新时间:2023-12-05 02:49:49 24 4
gpt4 key购买 nike

我想创建一个 REST API,让调用者为一个可能在后台运行一分钟左右的作业提交输入。因此,API 应该产生一个后台作业并立即返回一个作业 ID。然后,客户端可以向另一个端点查询作业状态和结果。

我脑子里的第一个念头是这样的:

  • API“提交作业 lambda”在数据库中创建作业记录并将输入提交到 SQS 队列
  • “Worker lambda”轮询 SQS,执行工作并更新数据库中的作业
  • API“query job lambda”从数据库中返回作业记录

为此,worker lambda 必须有足够的超时来完成一项大型工作。API lambda 总是很快,因为它们只进行数据库操作并向 SQS 提交。

仍然让我感到困扰的是我需要 2 个 lambda。但是,如果我理解正确的话,在 lambda 函数向调用者返回响应后就不可能继续执行它了。我还考虑过使用 Kinesis 而不是 SQS 来处理事件,因为执行顺序并不重要,每个调用者只希望在合理的时间内完成他的工作。我的流量模式可能是突然出现 100.000 个工作岗位,然后几天都没有。我也在考虑在每个工作中支持多个子工作,这样每个工作实际上就是 1-100 个工作单元。

我不想为 worker 托管实例,例如ECS上的容器;我只想依赖无服务器概念。

这是一个不错的设置还是有更好的设置?

最佳答案

这看起来像是 AWS Step Functions 的一个很好的用例.

您可以从 API Gateway 开始状态机执行这将返回执行 ID。

该执行 ID 可用于 query the status执行,它正在做所有必要的后台处理

关于amazon-web-services - 使用 AWS lambda 的异步后台作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63901680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com