본 포스팅은 AWS 공식 문서 내용을 정리 & 자체번역 한 내용입니다. (이후 공식 번역이 지원되는 경우 공식 문서를 참고바랍니다.) AWS SAM은 쉽게 서버리스 애플리케이션을 구성하고 관리 할 수 있는 AWS SAM CLI 커맨드 라인 툴을 제공합니다. AWS SAM CLI를 사용하기 위해서는 몇가지 설치와 설정이 필요합니다. macOS에서 AWS SAM CLI 설치하기 AWS CLI를 사용하기 위해서는 사전 요구사항을 설치하고 구성해야합니다. AWS 계정 생성 AWS Identity and Access Management (IAM), AWS credentials 설정 도커(Docker) 설치 (참고: 도커는 --use-container 옵션을 사용하여 로컬환경에서 테스트 할때 사용됩니다.) Home..
본 포스팅은 AWS 공식 문서 내용을 정리 & 자체번역 한 내용입니다. (이후 공식 번역이 지원되는 경우 공식 문서를 참고바랍니다.) AWS Serverless Application Model (이하 AWS SAM)은 AWS에서 서버리스 애플케이션을 만들 수 있는 오픈소스 프레임워크 입니다. 여기서 서비리스 애플리케이션이란 단순히 AWS Lambda를 의미하는 것이 아니라, API, 데이터베이스, 이벤트매핑 등의 추가 리소스와의 조합을 의미합니다. AWS SAM은 다음과 같은 구성 요소로 이루어집니다. AWS SAM template specification. 서버리스 애플리케이션 스펙(specification)을 정의하는데 사용됩니다. 서비리스 애플리케이션에서 사용되는 API, 권한, 설정, 이벤트들을 ..
개요 이번 포스팅에서는 AWS Lambda(이하 람다)에서 AWS SQS에 생산한 메시지를 보내고, SQS에서 받은 메시지를 다른 람다에서 소비하는 과정을 기록하겠습니다. 람다와 SQS에 대한 기본 설명은 생략합니다. 1. AWS SQS 대기열 생성하기 먼저 실습을 위해 메시지를 주고 받을 SQS 대기열을 생성합니다. 다른 설정은 모두 기본 셋팅값으로 하여도 무방합니다. 액세스 정책 또한 람다에서 호출하기 때문에 별다른 설정이 필요 없습니다. 2. 메시지 Producer AWS Lambda(람다) 생성하기 실습을 위해 사용할 람다 함수를 선언합니다. 람다 함수의 이름과 런타임을 지정해줍니다. (이 포스팅에서는 Node.js 12.x로 진행하였습니다.) 함수가 생성되면 다음과 같은 코드를 실행하여서, 람다..
Spring Cloud Function(Spring Boot) 프로젝트를 AWS Lambda에 배포하는 방법에 대해 기록해보겠습니다. 1. 프로젝트 gradle 설정 샘플 ext { set('springCloudVersion', "2020.0.2") } dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } } dependencies { implementation 'org.springframework.cloud:spring-cloud-function-adapter-aws' implementation 'com.amazonaws:aws-lambda-j..
메소드를 람다식으로 변경하는 방법에 대해서는 이전 포스팅을 참고 해주시기 바랍니다. ☞ 자바의 람다식(Lambda) - 1. 람다식으로 표현하기 람다식 사용하기 - 함수형 인터페이스 람다식으로 바뀐 메소드를 사용하기 위해서는 함수형 인터페이스를 선언해야 합니다. 인터페이스를 함수형 인터페이스로 선언하기 위해서는 '단 하나의 추상메소드'만이 선언 되어 있어야 합니다. interface MyInterface{ abstract int myMethod(int a); } 위와 같이 선언된 인터페이스를 함수형 인터페이스라고 합니다. (인터페이스명 위에 @FunctionalInterface라고 선언하면 '단 하나의 추상메소드가 있는지' 조건을 검사해줍니다.)추상메소드에서 유심히 봐야 할 것은, 인자의 갯수와 타입 그..
람다식(Lambda expression) 함수형 프로그래밍의 등장으로 많은 언어들이 함수형 프로그래밍으로 만들어 지고 있고, 자바는 객체지향언어 이지만 이러한 시대적 흐름의 맞추어 유연하게 변하기 위해서 람다식을 도입하게 되었습니다. 함수형 프로그래밍이라는 이름에서 알 수 있듯이 람다식은 함수(메소드)의 변형으로 만들어 집니다. 람다식을 사용하게 되면 메소드가 '식(expression)'으로 바뀌게 되고 마치 하나의 '변수(값)' 처럼 사용 할 수 있게 됩니다. 기존의 메소드를 람다식으로 바꾸기 //기존 메소드 int myMetohd (int a, int b){ return a > b ? a: b; }반환타입과 메서드이름을 제거합니다.매개변수의 선언부 괄호()와 몸통{} 사이에 ->를 추가합니다. //람..