🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

1368閲覧

AWS LambdaでCannot find module 'async'

imamoto_browser

総合スコア1161

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2017/07/07 22:56

編集2017/07/08 04:35

AWS LambdaでS3にアップロードしたときに、ログ出力するようなnode.jsをアップしたのですが、

Cannot find module 'async'

となってしまいます。このエラー自体は当然だと思うのですが、asyncはどこのコンソールからinstallすればいいのでしょうか。

lambda専用のconsoleがあるのでしょうか。

javascript

1var async = require('async'); 2var AWS = require('aws-sdk'); 3var s3 = new AWS.S3(); 4 5 6// ここに処理内容を記述します。 7exports.handler = function(event, context) { 8 9 // Bucket名とアップロードされた対象のパスを取得 10 var Bucket = event.Records[0].s3.bucket.name; 11 12 // ここにバケット名以下のファイルパスが入ります。 13 // バケット直下であれば、test.json、階層構造があれば/test1/test.json 14 var srcKey = event.Records[0].s3.object.key; 15 16 console.log("srcKey is " + srcKey); // 出力してみる。 17 18 19 // ここからファイルを読み込み、新しいファイルを出力します。 20 async.waterfall([ 21 function(callback){ 22 console.log("ファイル読み込みを開始"); 23 24 var params = { 25 Bucket: Bucket, 26 Key: "読み込むファイル名を記述" 27 }; 28 29 s3.getObject(params, function(err, data){ 30 31 // 読み込んだ内容は下記の記述で取得できます。Bodyの中にいます。 32 var str = data.Body.toString(); 33 34 // この後になにかしらの処理をいれます。 35 // 次の処理へ進むためにcallbackを記述します。 36 callback(null, "次へ渡す値があれば、ここに入れます。"); 37 }) 38 }, 39 function(arg1, callback){ 40 console.log("ファイル出力開始"); 41 var params = { 42 Bucket: Bucket, 43 Key: test.txt, 44 Body: test 45 }; 46 47 // ファイルを出力します。 48 s3.putObject(params, function(err, data){ 49 if(err) throw err; 50 callback(null, "データを追加しました。"); 51 }); 52 } 53 ],function(err, results){ 54 if(err) throw err; 55 console.log("全ての処理が完了しました。 " + results); 56 }); 57

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mr-hisa-child

2017/07/08 03:41

不都合がなければ、ソースを載せていただけますか?
guest

回答1

0

ベストアンサー

上記のソースはLambdaのエディタ上に書いていますか?
AWSのSDK以外のモジュールを利用する場合は、モジュール(node_module)込みのソースをzipに圧縮して、
アップロードする必要があります。

投稿2017/07/08 06:37

mr-hisa-child

総合スコア294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

imamoto_browser

2017/07/08 06:51

同一の説明をブログ上で見つけました。S3を経由してzipファイルをあげてみようと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問