首页 > 解决方案 > AWS Lambda:可以使用 Python 用户输入吗?

问题描述

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

流程将是:

  1. 用户名和密码发送到 lambda 函数
  2. lambda 函数启动,chromium 使用用户名和密码自动登录
  3. 等待来自用户的短信代码
  4. 用户输入短信代码,代码传递给 lambda 函数
  5. lambda函数继续

可以这样做吗?就像在本地运行 python 时的 input() 函数

谢谢!!

*stackoverflow 中的第一个问题!让我知道是否有任何不妥之处

标签: pythonamazon-web-servicesseleniumaws-lambdaheadless-browser

解决方案


我们至少需要两个 Lambda。

第二个拉姆达:

  • 以 OTP 和 UserId 作为输入。
  • 使用 userId 和 OTP 将记录写入 DynamoDb。

第一个拉姆达:

  • 使用用户 ID 和密码调用 Lambda
  • 启动 selenium 浏览器会话。
  • 登录并向 Dynamo 写入记录。
  • 每隔一秒检查一次 Dynamo,以获取 Dynamo 中带有 OTP 的 userId 条目。
  • 设置超时并完成登录过程。

这种方法的主要缺点是我们在整个登录时间内都运行了第一个 Lambda。但是,如果我们不能破坏登录和 OTP 流程,我看不到其他方法。可能有一个 ECS Fargate 任务而不是 Lambda 函数可能会节省一些成本,因为我们可以在单个 ECS 任务中轻松运行多个 selenium 浏览器会话。


推荐阅读