首页 > 解决方案 > 带有 api 的 Lambda boto3 后台函数

问题描述

我正在尝试构建一个基本的 AWS Lambda API 和函数设置来执行以下操作:

我被困在第 2 部分。如何从后台函数转到 API 再返回客户端?

我正在为我的 Lambda 脚本使用 python boto3。

标签: amazon-web-servicesaws-lambda

解决方案


这是 AWS Lambda,因此您的客户端没有与服务器端代码的持久连接。

这是构建它的一种方法的想法:

  • 您的客户端发出触发 Lambda 函数的 API 请求
  • 在调用时,您的 Lambda 函数会生成一个新的唯一 ID(UUID),并将其写入 DynamoDB,以便以后可以将该 UUID 与后台处理的结果相关联
  • Lambda 启动后台处理,将 UUID 传递给它
  • Lambda 将生成的 UUID 返回给客户端
  • 后台处理异步发生,最终将任何结果写入与触发它的 UUID 关联的 DynamoDB 项目
  • 客户端定期轮询另一个 API,比如每 10 秒,发送给它的 UUID
  • 被轮询的 Lambda 采用提供的 UUID,在 DynamoDB 中进行查找并返回 302 重定向到 URL 结果,或指示结果尚未准备好(例如 HTTP 404)
  • 您创建的某些过程稍后(或不)从 DynamoDB 中删除该项目

推荐阅读