티스토리 뷰

목표 : AWS Lambda + API Gateway + S3 + JAVA를 이용해 서버리스 API 개발하기

1. AWS Lambda 생성

함수생성 클릭

 

새로작성

함수이름, 런타임을 설정한다.

 

람다함수 생성! 이제 내용을 작성해줘야한다. 자바의 경우 콘솔에서 코드를 직접 작성할 수 없다.

 

2. Amazon S3버킷 생성

이제 람다에서 사용하는 코드를 올릴 s3를 만들어주자

S3로 가서 버킷을 생성한다. 적당한 이름으로 버킷을 생성한다.

 

3. IAM

이클립스나 외부에서 AWS를 연결해서 사용하려면 키를 발급받아야한다.

내 아이디 > 내 보안 자격 증명

 

CLI, SDK 및 API 액세스를 위한 액세스 키 > 액세스키 만들기를 클릭하면 아래와 같은 화면이 뜬다.

시크릿 키는 발급될 때만 확인 가능하니까 잘 저장해놓는다.

 

4. 이클립스 - AWS 연결

0) 이클립스에 AWS toolkit 설치

Help > MarketPlace에서 aws를 검색 후 AWS Toolkit for Eclipse 설치한다.

 

1) 이클립스 - AWS 연결

AWS Toolkit for Eclipse > Preferences

 

Profile Name, Access Key ID, Secret Access Key 를 입력해준다.

Access Key ID, Secret Access Key는 위에서 생성한 값을 넣어주고 Apply and Close를 하면 AWS와 이클립스가 연결된다.

 

5. 이클립스 - 람다 프로젝트 생성

1. 람다 코드 작성

이제 이클립스에서 람다에 올릴 코드를 작성해보자.

File > New > Project

AWS Lambda Java Projcet로 새 프로젝트를 생성해준다.

 

Input Type을 Custom하고 싶어서 Custom으로 설정했다.

Input을 받아서 그대로 출력해주는 간단한 코드를 작성해봤다. Request라는 클래스로 Input을 받는다.

/* Test.java */
package com.amazonaws.lambda.demo;

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

public class Test  implements RequestHandler<Request, String> {
	
	public String handleRequest(Request request, Context context) {
		
		String hello = request.getHello();
		
		return hello;	
		
	}
}
/* Request.java */
package com.amazonaws.lambda.demo;

public class Request {
	private String hello;

	public String getHello() {
		return hello;
	}

	public void setHello(String hello) {
		this.hello = hello;
	}
	
}

 

2. 람다에 올리기

이제 자바파일을 람다에 올려보자.

오른쪽마우스 > Upload function to AWS Lambda

Select the Handler : 이클립스에서 생성한 람다로 올릴 파일

Select the AWS Region : AWS Region

Choose an exsiting Lambda function : 위에서 만들어준 test 람다 선택

 

버전관리를 위한 파트다.

Publish new version, Provide an alias to this new version 을 체크 후 버전이 없다면 Create a new function alias를 선택해 버전을 만들어주고 기존 버전에 올리려고 한다면 Choose an exsiting function alias를 선택해준다.

그리고 아까 만들어둔 S3버킷을 선택해준다.

 

3. 이클립스에서 테스트

이제 람다를 올렸으니 테스트를 해보자!

오른쪽마우스 클릭 후 AWS Lambda > Run function on AWS Lambda

JSON 형식으로 request 파라미터를 넣어준다.

invoke를 누르면 콘솔창에 hello 값이 출력되는것을 알 수 있다.

 

4. API Gateway

rest api 구축

 

리소스 생성 -> CORS활성화(크로스도메인) 

 

작업 > 메서드 생성 > GET

 

 

권한부여 alert이 뜨면 확인

람다 생성!

통합요청 > 매핑 템플릿 가서

위와같이 맵핑해준다.

 

테스트해볼까요

 

테스트를 해보면 성공!

 

5. 배포하기

 

 

배포 스테이지를 따로 관리해주는게 좋다.

보통 3단계로 나눠서 관리하는데 개발, 테스트, 프로덕션으로 관리한다.

나는 아직 개발단계이기 때문에 개발스테이지에 배포한다. 개발단계 이름을 dev로 정했다.

배포를 하면 배포된 url을 확인할 수 있는데 맨마지막에 dev가 붙어있는것을 확인할 수 있다.

 

배포하면 끝!

 

6. 포스트맨에서 테스트해보기

포스트맨을 이용해서 api를 테스트해보자

url : 배포url/dev/test

포스트맨으로 호출해보면 정상적으로 호출하는것을 확인할 수 있다.

 

 

'AWS' 카테고리의 다른 글

[AWS] Amazon S3, CloudFront  (4) 2019.08.12
[AWS]AWS, AWS Lambda(+Cold Start), API Gateway  (10) 2019.07.03
댓글