aws lambda中的梦魇下载管理器

问题描述 投票:5回答:1

我正在使用梦魇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个回答
0
投票

这听起来像是:

  • 您的新依赖项未打包到可部署的.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语句在Node 4.3和Node 6.10上都适用于我。

© www.soinside.com 2019 - 2024. All rights reserved.