python - AWS Lambda:可以使用 Python 用户输入吗?
问题描述
我正在尝试创建一个 AWS lambda 函数来帮助用户从网站收集数据(使用 selenium 和 headless-chromium)。该网站在登录期间需要验证短信代码,因此我需要从用户那里获取它并将其传递回 AWS Lambda 函数
流程将是:
- 用户名和密码发送到 lambda 函数
- lambda 函数启动,chromium 使用用户名和密码自动登录
- 等待来自用户的短信代码
- 用户输入短信代码,代码传递给 lambda 函数
- lambda函数继续
可以这样做吗?就像在本地运行 python 时的 input() 函数
谢谢!!
*stackoverflow 中的第一个问题!让我知道是否有任何不妥之处
解决方案
我们至少需要两个 Lambda。
第二个拉姆达:
- 以 OTP 和 UserId 作为输入。
- 使用 userId 和 OTP 将记录写入 DynamoDb。
第一个拉姆达:
- 使用用户 ID 和密码调用 Lambda
- 启动 selenium 浏览器会话。
- 登录并向 Dynamo 写入记录。
- 每隔一秒检查一次 Dynamo,以获取 Dynamo 中带有 OTP 的 userId 条目。
- 设置超时并完成登录过程。
这种方法的主要缺点是我们在整个登录时间内都运行了第一个 Lambda。但是,如果我们不能破坏登录和 OTP 流程,我看不到其他方法。可能有一个 ECS Fargate 任务而不是 Lambda 函数可能会节省一些成本,因为我们可以在单个 ECS 任务中轻松运行多个 selenium 浏览器会话。
推荐阅读
- mongodb - mongo db如何将递增序列值添加到现有集合中
- c# - 暂时限制玩家移动到地图的某个区域 Unity 游戏开发 C#
- matlab - 使用 CPLEX/AMPL 解决 SOCP 问题的速度比使用 CPLEX/MATLAB 解决时快 10 倍,为什么?
- python - beautifulsoup4 一直打印无
- pytorch - torch.mul 导致 param.grad 为 NoneType
- android - 在 ACTION_BOOT_COMPLETED 之后,为什么 AlarmManager 会立即运行?
- javascript - 如何在不单击搜索按钮的情况下创建搜索功能?
- swiftui - 如何处理 swiftui @State optional unwrap
- python - 如何与 Open CV 中的 BGR 图像像素值进行比较?
- java - 使用@IdClass 休眠一个实体的@ManyToOne