質問編集履歴

1

追記

2017/07/08 04:35

投稿

imamoto_browser
imamoto_browser

スコア1161

test CHANGED
File without changes
test CHANGED
@@ -11,3 +11,125 @@
11
11
 
12
12
 
13
13
  lambda専用のconsoleがあるのでしょうか。
14
+
15
+
16
+
17
+
18
+
19
+ ```javascript
20
+
21
+ var async = require('async');
22
+
23
+ var AWS = require('aws-sdk');
24
+
25
+ var s3 = new AWS.S3();
26
+
27
+
28
+
29
+
30
+
31
+ // ここに処理内容を記述します。
32
+
33
+ exports.handler = function(event, context) {
34
+
35
+
36
+
37
+ // Bucket名とアップロードされた対象のパスを取得
38
+
39
+ var Bucket = event.Records[0].s3.bucket.name;
40
+
41
+
42
+
43
+ // ここにバケット名以下のファイルパスが入ります。
44
+
45
+ // バケット直下であれば、test.json、階層構造があれば/test1/test.json
46
+
47
+ var srcKey = event.Records[0].s3.object.key;
48
+
49
+
50
+
51
+ console.log("srcKey is " + srcKey); // 出力してみる。
52
+
53
+
54
+
55
+
56
+
57
+ // ここからファイルを読み込み、新しいファイルを出力します。
58
+
59
+ async.waterfall([
60
+
61
+ function(callback){
62
+
63
+ console.log("ファイル読み込みを開始");
64
+
65
+
66
+
67
+ var params = {
68
+
69
+ Bucket: Bucket,
70
+
71
+ Key: "読み込むファイル名を記述"
72
+
73
+ };
74
+
75
+
76
+
77
+ s3.getObject(params, function(err, data){
78
+
79
+
80
+
81
+ // 読み込んだ内容は下記の記述で取得できます。Bodyの中にいます。
82
+
83
+ var str = data.Body.toString();
84
+
85
+
86
+
87
+ // この後になにかしらの処理をいれます。
88
+
89
+ // 次の処理へ進むためにcallbackを記述します。
90
+
91
+ callback(null, "次へ渡す値があれば、ここに入れます。");
92
+
93
+ })
94
+
95
+ },
96
+
97
+ function(arg1, callback){
98
+
99
+ console.log("ファイル出力開始");
100
+
101
+ var params = {
102
+
103
+ Bucket: Bucket,
104
+
105
+ Key: test.txt,
106
+
107
+ Body: test
108
+
109
+ };
110
+
111
+
112
+
113
+ // ファイルを出力します。
114
+
115
+ s3.putObject(params, function(err, data){
116
+
117
+ if(err) throw err;
118
+
119
+ callback(null, "データを追加しました。");
120
+
121
+ });
122
+
123
+ }
124
+
125
+ ],function(err, results){
126
+
127
+ if(err) throw err;
128
+
129
+ console.log("全ての処理が完了しました。 " + results);
130
+
131
+ });
132
+
133
+
134
+
135
+ ```