问题描述
我正在尝试创建一个 AWS lambda 函数来帮助用户从网站收集数据(使用 selenium 和 headless-chromium)。该网站在登录时需要短信验证码,所以我需要从用户那里获取它并将其传回 AWS Lambda 函数
流程将是:
可以这样做吗?像在本地运行 python 时的 input() 函数
谢谢!!
*stackoverflow 中的第一个问题!如果有任何不合理之处,请告诉我
解决方法
我们至少需要两个 Lambda。
第二个 Lambda:
- 以 OTP 和 UserId 作为输入。
- 使用 userId 和 OTP 将记录写入 DynamoDb。
第一个 Lambda:
- 使用用户 ID 和密码调用 Lambda
- 启动 selenium 浏览器会话。
- 登录并在 Dynamo 中写入记录。
- 在 Dynamo 中使用 OTP 每秒检查一次 Dynamo 以获取 userId 的条目。
- 设置超时并完成登录过程。
这种方法的主要缺点是我们首先在整个登录期间运行 Lambda。但是,如果我们不能打破登录和 OTP 流程,我就没有其他办法。 可能使用 ECS Fargate 任务而不是 Lambda 函数可以节省一些成本,因为我们可以在单个 ECS 任务中轻松运行多个 selenium 浏览器会话。