当前位置:  开发笔记 > 编程语言 > 正文

无法将任何第三方模块与AWS Lambdas一起使用

如何解决《无法将任何第三方模块与AWSLambdas一起使用》经验,为你挑选了1个好方法。

我正在研究一个使用模块的lambda(异步,请求等)

Unable to import module 'index': Error 
at Function.Module._resolveFilename (module.js:338:15) 
at Function.Module._load (module.js:280:25) 
at Module.require (module.js:364:17) 
at require (module.js:380:17) 
at Object. (/var/task/index.js:1:63) 
at Module._compile (module.js:456:26) 
at Object.Module._extensions..js (module.js:474:10) 
at Module.load (module.js:356:32) 
at Function.Module._load (module.js:312:12) 
at Module.require (module.js:364:17)

示例代码:

var 
  AWS = require('aws-sdk'),
  util = require('util'),
  request = require('request');

exports.handler = function(event, context) {
   console.log('test');
   context.done();
};

只要不需要第三方模块(除了aws-sdk),它工作正常(打印测试).只要我添加一行如下:

require('request') // or async, config and so on

它失败并出现上述错误.我已经尝试直接调用这些模块,通过指定没有运气的完整路径.就像它在调用时查看错误的目录一样require.

process.env在控制台中转储产生:

PATH: '/usr/local/bin:/usr/bin:/bin',
LAMBDA_TASK_ROOT: '/var/task',
LAMBDA_RUNTIME_DIR: '/var/runtime',
AWS_REGION: 'us-west-2',
AWS_DEFAULT_REGION: 'us-west-2',
AWS_LAMBDA_LOG_GROUP_NAME: '/aws/lambda/Thumbnailer',
AWS_LAMBDA_LOG_STREAM_NAME: '2015/12/10/[$LATEST]3f8ef236195448c88f206634bde6301b',
AWS_LAMBDA_FUNCTION_NAME: 'Thumbnailer',
AWS_LAMBDA_FUNCTION_MEMORY_SIZE: '512',
AWS_LAMBDA_FUNCTION_VERSION: '$LATEST',
NODE_PATH: '/var/runtime:/var/task:/var/runtime/node_modules',

这是我正在处理的模块 - 显然这曾经在某些时候起作用但不适合我.

想法?我觉得我在这里缺少一些lambdas特有的配置.



1> cyberwombat..:

令人痛苦的omg ......原来OSX使node_modules文件夹只能由用户读取,而AWS无法读取它.使node_modules文件夹和内容可以被世界读取并且它可以工作.我不确定所有OSX设置是否反应相同.我使用的nvm可能是罪魁祸首.

更新.我曾经设置所有文件,0666但遇到了可执行文件的问题.这是一个可以正确解决问题的小脚本.它会将所有文件设置为0666除非可执行文件或在这种情况下的目录0777.从项目文件夹中运行它(请注意不这样做的含义!):

这是我发布的问题的脚本:

#!/bin/bash
find . \
 '(' -perm -0700 -exec chmod 0777 '{}' + ')' -o \
 '(' -perm -0600 -exec chmod 0666 '{}' + ')'


@ken看到詹姆斯的评论 - 确保你没有压缩文件夹而是单个文件.
推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有