【问题标题】:nightmare-download-manager in aws lambdaaws lambda 中的噩梦下载管理器
【发布时间】:2018-01-01 13:33:44
【问题描述】:

我正在使用 nightmare js 来自动下载文件。所以两天前我们决定把这个工具移到aws lambda中,我能够使用nightmare-lambda-tutorial让aws的东西在噩梦中运行,但是我的lambda又使用了一个噩梦模块nightmare-download-manager添加这个下载管理器,lambda失败了'MODULE_NOT_FOUND' 消息,虽然我使用 npm install 安装了软件包,但我确实在 node_modules 中找到了文件夹和文件。

因此,通过调试,我发现即使使用最初的几行代码,lambda 也会失败,例如,

var binaryPack = require('./lib/bootstrap/nightmare-lambda-pack'), 
Xvfb = require('./lib/bootstrap/xvfb'), 
Nightmare = require('nightmare');

require('nightmare-download-manager')(Nightmare); 

第 4 行将导致模块未找到错误。知道如何解决这个问题吗?

【问题讨论】:

标签: javascript node.js amazon-web-services aws-lambda nightmare


【解决方案1】:

听起来确实像:

  • 您的新依赖项未打包到可部署的.zip
  • 您的新 zip 未正确上传/部署。

我认为这个特定的包没有任何理由在 Lambda 环境中出现问题。我遵循linked to tutorial,部署并测试了lambda,添加了nightmare-download-manager 依赖项,重新打包并重新部署,一切都按预期工作。


验证您的部署

验证工作空间和可部署 zip 文件中存在依赖项后,如果仍有问题,则需要验证 lambda 环境中是否存在依赖项。

我没有看到在AWS控制台中验证node_modules的存在和内容的方法,但是你可以do so with the CLI

aws lambda get-function --function-name <function-name>

响应中包含一个链接(有效期为 10 分钟),可让您下载部署代码的 zip 文件。下载此 zip,并验证 node_modules/nightmare-download-manager 是否在其中,包含预期的文件。

如果丢失,则说明您的打包或您的包的上传/部署出现问题。重新打包(压缩 libnode_modulesindex.js),然后使用 AWS 控制台重新部署。

假设它在那里,问题中的 require 语句对我来说在节点 4.3 和节点 6.10 上都可以正常工作。

【讨论】:

  • -package.json -index.js -lib | |__ 引导程序 | | | |_nightmare-lambda-pack.js | |_xvfb.js | | |__node_modules | |_nightmare |_nightmare-download-manager |_aws-sdk |_fs |_mime 。我刚刚下载并检查了功能,结构看起来像上面的一样
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
  • 2020-03-14
  • 2010-11-13
  • 2010-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多