AWS Lambda函数返回“无法找到模块'bl'”但它存在

时间:2015-11-19 17:39:15

标签: node.js amazon-web-services lambda google-api-nodejs-client

目前我的准系统功能在本地运行,并返回一个authtoken。 当我压缩我的文件夹的内容(不是文件夹本身,早期的问题)和上传/测试Lambda时,我收到错误“无法找到模块'bl'”,这似乎来自

/var/task/node_modules/googleapis/node_modules/google-auth-library/node_modules/request/request.js:9:10。

bl模块在那里,我已经尝试过几次重新安装bl以及整个googleapis模块。我已经尝试删除对bl的引用但没有工作。包含bl的请求模块本身包含多次,因此我可能尝试在不同的位置引用bl。它对我来说没有意义,它可以在本地工作,包括模块,而不是在lambda上工作。

我已经编写了几个Lambda函数,但这是我第一个使用库并上传zip而不是内联编写的函数,所以也许还有其他我错过的东西。

非常感谢任何帮助。

var https = require('https');
var google = require('googleapis');
var doc = require('dynamodb-doc');
var dynamo = new doc.DynamoDB(); 

var key = { ... }; 

function requestToken() {
    var scope = 'https://www.googleapis.com/auth/calendar';
    var jwtClient = new google.auth.JWT(key.client_email, null, key.private_key, scope, null);
    jwtClient.authorize(function(err, tokens) {
        if (err) {
          console.log(err);
          return;
        }
        else {
          console.log('token: ' + JSON.stringify(tokens)); // works as intended locally
        }

    });
}

requestToken();

1 个答案:

答案 0 :(得分:1)

我刚才遇到了同样的错误,对我有用的是reinstalling npm from nodejs.org