LoginSignup
7
8

More than 5 years have passed since last update.

AWS lambdaでファイル出力する方法 (Java)

Last updated at Posted at 2016-02-05

JavaのFileオブジェクトを使ってファイル出力を行う

JavaでHTMLファイルを作成し、S3にアップロードするjarファイルをlambdaで実行しようとすると、ファイル作成時に「permission denied」エラーが出た。

いろいろ試した結果、「/tmp」配下にならファイルを出力できるようだ。


package main;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;

public class LambdaFunctionHandler implements RequestHandler<Object, Object> {

    @Override
    public Object handleRequest(Object input, Context context) {

        try {
            File file = new File("/tmp/index.html");
            PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
            pw.println("<html><body>TEST</body></test>");
            pw.close();
            lambdaLogger.log("Suucess to make file.");
        } catch (IOException e) {
            lambdaLogger.log("Failed to create temp file.");
        }
        return null;
    }
}

↑だったらうまく動いた。
網羅的に調べたわけではないので他にディレクトリに出力できるかはわかりません。(誰かしっていたら教えてください)

lambdaはスケジュール機能も追加されたようなのでもう少し遊んでみようと思う。

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8