【问题标题】:Including node package into Python AWS Lambda将节点包包含到 Python AWS Lambda 中
【发布时间】:2019-05-08 16:53:01
【问题描述】:

我想通过 python 脚本运行一个节点包。具体来说,我在 AWS lambda 上运行 Python 3,我需要执行 newman 命令(newman 是邮递员应用程序的 CLI 版本)。

我在本地工作,因为我在全局安装了 newman(所以我可以通过 python subprocess 执行脚本。

打包newman 包及其所有依赖项的理想方式是什么?

【问题讨论】:

  • 你为什么需要newman,你不能使用Python HTTP客户端吗?
  • newman 是一个 API 测试框架。它比 python HTTP 客户端拥有更多的功能。
  • 你是什么意思 "the" 客户端?有很多 Python 工具。如果你想专门使用 Node 工具,为什么不写一个 Node lambda?这似乎是一个 XY 问题。
  • 这就是python http client
  • 我非常愿意讨论为什么这个问题会被否决。用一种语言开发的应用程序需要依赖于用另一种不同语言编写的应用程序,这非常实际和普遍。

标签: python node.js python-3.x npm aws-lambda


【解决方案1】:

这个问题的答案相当简单(尽管由于 python 与 js 结合的性质,它可能看起来有点奇怪)。

-

如果 node 包对于您的 python lambda 是绝对必要的,请花时间在您选择的目录中设置适当的 npm 虚拟环境(对我来说,我首先创建了 executables/node)让包管理器完成收集依赖项的手工劳动(为此使用npm init)。在执行此操作之前,请务必对使用节点 lambda 和 python lambda 进行彻底审查。

一旦 env 存在,使用 npm install 安装您需要的包(对于我来说是 newman)。

在您选择工作的目录中,您将看到所有依赖项和所需的节点包都放入node_modules 目录中。从那里,强制 python 代码从目录中调用包。瞧……您自己有一个在 Python AWS lambda 上下文中工作的节点包。

【讨论】:

    猜你喜欢
    • 2021-07-29
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 2016-08-09
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    • 1970-01-01
    相关资源
    最近更新 更多