【问题标题】:AWS Cloud9 Lambda installing node.js modulesAWS Cloud9 Lambda 安装 node.js 模块
【发布时间】:2018-01-23 23:05:36
【问题描述】:

我在尝试在 AWS Cloud9 的 lambda 项目中安装节点模块时遇到问题。

我运行了命令

npm install --save request
npm install --save request-promise

我不断收到“错误:找不到模块'request-promise'”。

我有以下代码。

var rp = require('request-promise');

结构是这样的

-Lambda 环境

--getMergedProducts

--node_modules

【问题讨论】:

  • 我真的不知道它是什么,但你能试试这个吗? sudo npm install -g request-promise--unsafe-perm=true --allow-root
  • 这不起作用,我收到错误并查看日志并找到了这个。 5039 错误 peerinvalid 包请求不满足其兄弟的 peerDependencies 要求! 5045 错误代码 EPEERINVALID 5046 详细退出 [1, true]
  • 对不起兄弟请再试一次 sudo npm install -g request-promise --unsafe-perm=true --allow-root
  • 我忘了在promies之间留一个空格(这里)--不安全
  • 我用空格试过了。它是同样的问题。呃!命令 "node" "/usr/bin/npm" "install" "-g" "request-promise" "--unsafe-perm=true" "--allow-root" npm ERR! cwd /home/ec2-user/environment npm 错误!节点 -v v0.10.48 npm 错误! npm -v 1.3.6 npm 错误!代码 EPEERINVALID npm 错误! npm 错误!可以在以下位置找到其他日志记录详细信息:npm ERR! /home/ec2-user/environment/npm-debug.log npm ERR!不好的代码 0 当我查看日志文件时。我看到了上面的错误。

标签: node.js amazon-web-services promise aws-lambda aws-cloud9


【解决方案1】:

这不是 Lambda 的使用方式。 我与一位 AWS 解决方案架构师交谈,他为我安排好了一切。

请记住,每个功能都旨在独立存在,因此需要自行打包。每个函数都有自己的 package.json 和 node_modules,因为每个函数都在自己的容器中运行。

您的方法假设您的所有功能都在相同的基础架构上运行,而在无服务器世界中并非如此。全局模块(超出 Lambda 运行时中打包的模块)不存在。

请务必阅读: https://docs.aws.amazon.com/lambda/latest/dg/best-practices.htmlhttps://docs.aws.amazon.com/lambda/latest/dg/nodejs-create-deployment-pkg.html

我通过将 node_modules 文件夹从环境文件夹移动到 lambda 项目文件夹来测试它并且它工作!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    • 2018-12-21
    • 1970-01-01
    • 2012-07-22
    • 2015-12-08
    相关资源
    最近更新 更多