amazon-web-services - 带有 api 的 Lambda boto3 后台函数
问题描述
我正在尝试构建一个基本的 AWS Lambda API 和函数设置来执行以下操作:
第 1 部分:客户端使用 api 调用函数并运行后台 1 分钟函数来处理数据和在浏览器中向客户端发送快速消息。
第 2 部分:当后台功能完成时,它会通过生成的链接返回 302 重定向到客户端。
我被困在第 2 部分。如何从后台函数转到 API 再返回客户端?
我正在为我的 Lambda 脚本使用 python boto3。
解决方案
这是 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 中删除该项目
推荐阅读
- flask - Flask_wtf - UnmappedInstanceError:类未映射
- php - 是否可以将自定义搜索栏(通过 3rd 方插件或自定义)添加到现成的 Wordpress 主题的菜单中?
- c++ - 为什么我收到 QWindowsWindow::setGeometry: Unable to set geometry warning with Qt 5.12.0
- node.js - 如何通过 keycloak 服务帐户登录?
- javascript - 显示数组值(如果数组名和字符串名相同)
- php - Google Places Photo API 返回一张图片,但是我不知道如何将它发送到我的前端
- python - 将 Canny 边缘检测转换为 np.array
- jdbc - 当我使用相同的密钥时,Kafka JDBC 连接不会将消息发布到一个分区
- java - 在java中解析xml时跳过元素的反序列化并将整个内容作为字符串获取
- python - 无法调用“按钮”命令:应用程序已被销毁