繁体   English   中英

AWS Lambda函数返回“找不到模块'bl'”,但该函数存在

[英]AWS Lambda function returning “Cannot find module 'bl'” yet it is present

目前,我的准系统函数在本地工作,并返回一个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();

我只是遇到了同样的错误,对我有用的从nodejs.org重新安装npm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM