【问题标题】:Injecting libraries/dependencies into AWS Lambda with Serverless Framework使用无服务器框架将库/依赖项注入 AWS Lambda
【发布时间】:2021-03-07 06:35:19
【问题描述】:

非常快速的问题;我是否需要从命令提示符 sls plugin install -n serverless-python-requirements 安装到我制作的每个无服务器框架项目中,以便将 python 依赖项加载到我要部署的堆栈/lambda 函数中?

我一直在使用无服务器框架尝试将其用于涉及 AWS Lambda 和 python 进行 csv 转换的项目。因此,我想在 Lambda 函数中使用 pandas 和 numpy。

我已经安装了 Docker,并且在 yaml 文件中有

custom:
  pythonRequirements:
    dockerizePip: true

plugins:
  - serverless-python-requirements

但想知道是否需要在每次创建新项目时重复安装 sls plugin install -n serverless-python-requirements。我注意到,如果我这样做,它会将两个 json 文档 package-lock.json 和 package.json 下载到项目文件夹中。但我注意到尽管其他教程使用依赖项但没有这些 json 文件,所以我不太确定这是否是我每个项目重复的步骤。

【问题讨论】:

    标签: python amazon-web-services aws-lambda amazon-cloudformation serverless-framework


    【解决方案1】:

    好问题!

    无服务器框架是用 NodeJS 编写的project

    特别是sls plugin install 基本上只是在hood 下运行npm install。这意味着sls plugin install 只是从 NPM 获取插件并安装它(通过将其添加到项目 package.jsonpackage-lock.json

    您可能会运行npm i -g serverless-python-requirements 为您的系统全局安装库,然后我怀疑您可以在每个项目的@ 的plugins 块中声明插件987654330@文件,完成。

    【讨论】:

    • 但是在每个项目文件夹(每个项目单独)中执行npm i -g serverless-python-requirements 既没必要也不通常这样做?如果是这样的话,我不知道我为什么会这样想,但这让我陷入了一个奇怪的兔子洞。
    • -g 全局安装一个包,这意味着你不需要在其他任何地方安装它。
    • 好吧,有趣。是的,我一直在为每个项目声明每个 yaml 文件的插件块中的插件(如原始帖子中所示),然后还在每个项目中运行sls plugin install -n serverless-python-requirements,但后来想知道这是否过度杀戮。
    猜你喜欢
    • 2021-02-27
    • 2017-12-06
    • 1970-01-01
    • 2021-06-08
    • 2022-08-20
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    • 2014-10-30
    相关资源
    最近更新 更多