AWS Lambda:可以使用 Python 用户输入吗?

问题描述

我正在尝试创建一个 AWS lambda 函数来帮助用户从网站收集数据(使用 selenium 和 headless-chromium)。该网站在登录时需要短信验证码,所以我需要从用户那里获取它并将其传回 AWS Lambda 函数

流程将是:

  1. 用户名和密码发送到 lambda 函数
  2. lambda 函数启动,用用户名和密码自动登录 Chrome
  3. 等待用户的短信验证码
  4. 用户输入短信代码代码传递给 lambda 函数
  5. 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 浏览器会话。