【问题标题】:Running both NodeJS and Python code on a Lambda function在 Lambda 函数上同时运行 NodeJS 和 Python 代码
【发布时间】:2021-03-20 23:44:33
【问题描述】:

我有一些 python 库需要在 NodeJS 中的 Lambda 函数上调用。我需要这样做,因为一些 python 函数正在执行外部 API 调用,可能需要一段时间才能完成,并且由于 Promise,使用 NodeJS 可以大大加快这一进程。

我已阅读可以将自定义运行时创建为层,但无法在 NodeJS 12 + Python 3.7 上找到一些示例,那么该怎么做呢?某处是否有已发布和可用的运行时列表?

【问题讨论】:

  • @AlexanderRiedel 不,AWS Lambda 上的运行时,您同时拥有 NodeJS 和 Python ......
  • 您能否为您的节点运行时创建单独的 lambda,然后从您的 python lambda 调用这些 lambda 函数(同步)?
  • @LostJon 嗯,这个想法恰恰相反,代码是用 Python 编写的,但我需要用 NodeJS 进行编排。所以是的,我可以这样做,但这意味着在总时间上为每个 python 进程添加启动 lambda 函数的时间,我认为在一个 lambda 中完成所有操作可能会更有效率吗?我会做一些测试,看看与其他选项的时间差

标签: python node.js aws-lambda runtime


【解决方案1】:

我认为新宣布的在 AWS Lambda 中运行 Docker 映像的选项可能是这里的最佳解决方案。

您可以使用 Amazon 提供的 Python 或 NodeJS 基础映像,然后安装其余所需的依赖项。将其放入 AWS ECR,然后使用 Docker 映像运行您的 Lambda。

检查news article。

【讨论】:

  • 是的,我实际上也在尝试这样做,但是当我构建自定义容器并进行一些测试时,使用默认的 python3.7 环境时,我得到的是 Init Duration: 6544.74 ms 而不是 Init Duration: 1066.99 ms。我遵循github.com/aws/aws-lambda-nodejs-runtime-interface-client 中的示例,但基于图像nikolaik/python-nodejs:python3.7-nodejs12(可能不是最轻的?)。我不是 Docker 的王牌,所以目前不是最好的解决方案,因为这个初始化持续时间并没有为我节省太多的计算时间......
  • @Guillaume 是那些初始化持续时间冷启动时间?第二个请求更快吗?如果是这样,那么您可能想看看预置并发,它基本上消除了冷启动。
猜你喜欢
  • 2019-01-21
  • 1970-01-01
  • 2019-12-03
  • 2021-04-07
  • 2014-08-28
  • 1970-01-01
  • 2019-07-06
  • 2020-12-11
  • 2019-11-11
相关资源
最近更新 更多