【问题标题】:Running python tika on aws lambda在 aws lambda 上运行 python tika
【发布时间】:2020-07-23 18:13:16
【问题描述】:

我正在使用tika python 从 pdf 中获取已解析的文本。它在后台运行 Tika rest 服务,使其可用作链接中提到的 python 库。

在我的本地系统或云实例上,使用此库的第一次运行 python 程序需要一些时间,因为它会启动服务。但是第二次运行没有延迟,因为服务已经在运行。现在,我正在将此程序转换为 aws lambda 函数。因此,每次运行时,服务器都会重新启动,并且每次启动 tika 服务都需要额外的时间。

我最近尝试过引入“用于 lambda 的 EFS”,但 tika 服务器不会在 EFS 中启动,因为没有 java。有没有办法让 tika 服务器保持运行,以便 lambda 函数可以访问服务,而无需每个 lambda 函数启动服务?还是用 aws lambda 不行?

【问题讨论】:

    标签: python amazon-web-services aws-lambda apache-tika amazon-efs


    【解决方案1】:

    不幸的是,运行 Lambda 函数并不能保证 MicroVM 将存在多长时间。此外,许多 MicroVM 可以同时启动以运行 Lambda。

    理想情况下,您可以将必须​​永久保持活动状态的任何内容(或至少让您控制何时停止它)移至EC2 等服务,或使用ECSEKS 作为容器运行。

    然后您可以运行您的 Lambda inside the VPC 并与资源通信,而无需额外的启动时间。

    【讨论】:

    • 它会自动处理访问资源的并发 lambdas 吗?以及有关如何在空闲一段时间后停止服务的任何参考。
    • 如果该服务位于 ECS Fargate 容器上,您可以使用 CloudWatch 警报来确定何时停止它,但您需要让您的 Lambda 在服务停止后再次启动该服务。关于并发连接从网上的简要介绍来看,它似乎将并发连接作为多个线程处理(尽管我没有使用 Tika 的任何经验,所以不知道如何配置它)。
    猜你喜欢
    • 1970-01-01
    • 2019-07-02
    • 2020-12-11
    • 2021-02-08
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    • 2016-03-28
    相关资源
    最近更新 更多