現在、私のベアボーン関数はローカルで動作し、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 を含む request モジュール自体が複数回含まれているので、別の場所で bl を参照してみるかもしれません。モジュールを含めてローカルで機能し、ラムダでは機能しないというのは、私には意味がありません。
私はいくつかの 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();