컴퓨터공학/서버리스 검색 결과

5건

2022-09-08컴퓨터공학/서버리스

[AWS][API Gateway] API Gateway 유형에 따른 ALB Private Integration 차이 /w VPC Link

API Gateway에서 REST API · HTTP API 모두 VPC Link(AWS Hyperplain의 지원)를 통해 VPC의 사설 자원과 통합될 수 있다. 다만, 게이트웨이 타입에 따라 VPC Link가 제공하는 추상화가 사뭇 다르다는 점을 언급하고자 한다. 참고 글 AWS 블로그 아마존 API Gateway에서 VPC Link를 통한 사설 통합 이해하기 AWS 문서 기술 백서 - API Gateway 사설 통합 - REST API 기술 백서 - API Gateway 사설 통합 - HTTP API 공식 문서 - HTTP API vs. REST API 결론 REST API Gateway는 VPC Link를 두어 사설 ALB와 통합할 될 수 있다. 다만 직접적이지 않다. 추가적인 NLB를 ALB 앞..


2022-04-04컴퓨터공학/서버리스

[AWS][SAM] 오류 핸들링

6. Graceful Error Handling 람다 서비스에서 돌아가는 코드는 다양한 실행 오류에 직면할 수 있다. 람다 서비스가 다른 서비스와 통합되는 방식은 3가지가 있는데, 각 방식에 맞추어 에러를 처리하는 방식도 달라진다. Sync 동기적인 워크플로의 대표적인 구성 예는 API Gateway를 이벤트 소스로 두는 경우이다. API Gateway는 람다 서비스에 어떤 요청을 전송할 뿐만 아니라 대응하는 응답의 반환을 기다린다. 따라서 람다 실행 중에 에러가 발생했다면 이를 훌륭하게 묘사하는 예외 응답을 내려주어야 한다. Async 람다를 호출하고 잊어버리는 모든 워크플로가 이 유형이다. 람다 실행 중에 에러가 발생하면 클라이언트는 이를 알지 못하기 때문에 무책임하게 해당 요청을 무시하는 선택을 해..


2022-03-24컴퓨터공학/서버리스

[AWS][SAM][강의노트] 자바 런타임에서 람다 클래스의 수명

람다 함수를 담는 자바 클래스 스태틱 변수 인스턴스 변수 함수 내 로컬 변수를 선언하고 랜덤 값을 대입한다. public class DataTypes { private Double instanceVariable = Math.random(); private static Double staticVariable = Math.random(); public DataTypes() { System.out.println("--Constructor--"); } static { System.out.println("--Static Block--"); } public void coldStartBasics() { Double localVariable = Math.random(); System.out.println("Instan..


2022-03-11컴퓨터공학/서버리스

[AWS][SAM][강의노트] 다양한 시그니처의 람다 작성해보기

다양한 시그니쳐의 람다 작성 해보기 다양한 시그니처를 갖는 람다 핸들러를 작성해 보겠습니다. 각 메서드를 작성하면 테스트를 위해 template.yaml의 핸들러 지정을 바꿔줍니다. 그리고 sam build & sam local invoke --event events/events.json 을 사용하여 테스트를 진행합니다. float → boolean public boolean getNumber(float number) { return number> 100000; } events.json 이벤트에 아무 숫자를 입력하자. 1234.4444 result false list → list public List getScores(List names) { Map studentScores = new HashMap();..


2022-03-11컴퓨터공학/서버리스

[AWS][SAM][강의노트] sam init - 프로젝트 시작하기

sam init SAM 프로젝트를 생성한다. 사용할 런타임과 빌드 툴에 따라 HelloWorld 템플릿을 고를 수 있게 되어있다. sam init --name HelloWorldFunction name --name HelloWorldFunction SAM 프로젝트 이름이다. 이 이름 값은 SAM 프로젝트에서 다양한 부분에 명명이 필요할 때 활용되고 있다. 람다 함수 리소스의 이름. 즉, 람다 함수의 논리적 이름. 꼭 프로젝트 이름과 람다 함수 리소스 이름을 같게 할 필요는 없다. SAM logs 대상을 지정할 때 sam logs -n HelloWorldFunction --stack-name firstlambda --tail SAM local invoke가 실행할 함수를 지정할 때 sam local inv..