AWS Lambda의 Java 사용 시도

7603 단어 AWSJavalambda

입문


AWS의 Lambda를 사용하여 DynamoDB에 액세스할 때 JavaScript를 사용하면 간단하게 작업을 수행할 수 있습니다.하지만 여러 개의 시계를 조회한 상태에서 자바스크립트 특유의 콜백 지옥에 들어가 사용하기 어려울 것 같다.또한 로컬 환경에서 동작을 확인하기 어려워서 이번에 새로 지원하는 Lambda Java를 사용하고 싶습니다.

준비


Lambda Java를 작성할 때 Eclipse+AWS Toolkit은 매우 수월합니다.따라서 AWS Toolkit을 설치하는 것이 좋습니다.

간단한 예제 만들기


AWS Toolkit을 설치하면 다음과 같이 간단하게 프로젝트를 만들 수 있습니다."New AWS Lambda Java Project..."탭 페이지에서 항목을 만들거나 편집합니다.

Lambda의 이벤트는 S3 Event 등을 선택할 수 있으며, 이번에는 사용자 정의를 간단하게 선택할 수 있습니다.입력 유형과 출력 유형을 선택할 수 있지만 객체를 동시에 선택합니다.

이제 handleRequest만 실행하면 됩니다.간단하게 입력을 반환할 뿐입니다.
package com.example.lamda;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;

public class MyLambdaFunctionHandler implements RequestHandler<Object, Object> {

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

}

단원 테스트


Java 버전은 간단하게 Eclipse로 JUnit을 치면 좋아요.사전에 로컬에서 입력 값과 출력 값을 간단하게 테스트할 수 있어서 매우 감사합니다.DynamoDB는 Local에서도 실행되기 때문에 이를 사용하면 기본적으로 로컬에서 이루어지고 마지막은 배치의 형식이다.(저는 개인적으로 현지에서 환경을 정비하고 그곳에서 가능한 한 실시 & 테스트 개발 효율이 좋다고 생각합니다)
입력한 대상이 되돌아오는지 테스트합니다.
package com.example.lamda;

import static org.junit.Assert.*;

import java.io.IOException;

import org.junit.BeforeClass;
import org.junit.Test;

import com.amazonaws.services.lambda.runtime.Context;

/**
 * A simple test harness for locally invoking your Lambda function handler.
 */
public class MyLambdaFunctionHandlerTest {
    private static class InputData {
        private String key1 = "value1";
    }

    private static InputData sInputData = new InputData();

    private static Object input;

    @BeforeClass
    public static void createInput() throws IOException {
        input = sInputData;
    }

    private Context createContext() {
        TestContext ctx = new TestContext();

        ctx.setFunctionName("Your Function Name");

        return ctx;
    }

    @Test
    public void testMyLambdaFunctionHandler() {
        MyLambdaFunctionHandler handler = new MyLambdaFunctionHandler();
        Context ctx = createContext();

        Object output = handler.handleRequest(input, ctx);

        assertEquals(input, output);
    }
}
Eclipse에서 JUnit을 실행한 후 테스트를 순조롭게 통과했습니다.

Jar 파일 만들기


AWS Toolkit을 사용하면 직접 배치할 수 있지만 보안상 Eclipse에 AWS 비밀번호를 입력하고 싶지 않습니다. 좀 번거롭지만 Jar 파일을 만든 후에 배치해야 합니다.
Jar 파일은 일반적으로 방금 재생된 My Lambda FunctionHandler 클래스만 배치하면 됩니다.(src 이하만 선택하십시오)

람다 함수 생성 및 테스트


Lambda Function에서 새 Function을 만들고 Blueprint에서 Hello Lambda를 간단하게 선택하십시오.그리고 다음과 같이 Jar 파일의 업로드 등을 설정합니다.
(Handler에서 방금 만든 클래스 이름의 전체 경로를 지정하십시오.)

그리고 실행하면 순조롭게 성공할 것이다.

좋은 웹페이지 즐겨찾기