teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

追記

2017/07/08 04:35

投稿

imamoto_browser
imamoto_browser

スコア1161

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