AWS

Lambda 개발 절차

초코푸딩 2024. 5. 22. 16:29

1. Lambda 개발 절차

  1. Lambda 함수 이름을 작성한다.
  • 호출될 URI가 Restful 하게 정의되기 쉽도록(동사가 아닌 명사이용), 명확한 이름을 작성한다.
  • 오른쪽 API Gateway URI 정의 참고

예시) MsTeams - OAuth 담당 함수명 : msTeams-api-OAuthAPI

MsTeams -  Meeting 생성 및 삭제 담당 함수 :  msTeams-api-mettingAPI
  • 실행역할은 기존 역할 사용한다.
  1. 만든 Lambda 함수명을 인프라담당자(현. 이진승 팀장님) 께 전달하여, (업무 생성 필요 + 메신저도 함께 드리면 좋음) Lambda(함수)와 APIGateway(호출 URL)를 연결한다.
  2. VS Code에서 node 환경에서 개발한뒤에 ZIP으로 묶어서 업로드한다.
    • 크기가 커서 인라인 편집기가 활성화 되지 않는 경우에는 아래 내용중 layer로 생성하기 참고.
  1. 개발 완료되면 호출될 URL을 JexConfig XML 호출 방식으로 변경한다. (API GateWay 운영 개발 호출 URL 다르기 때문에)
    • 참고: MSTeams와 GoogleCalendar 호출 URL의 도메인은 이미지 프로세싱 서비스 호출 URL도메인과 동일해서 새로 생성하지 않음.

2. Lambda Convention 및 꿀팁🍯

Convention

꿀팁🍯


3. 호출 실패시 CASE 분석

Q. index.js를 찾을 수 없다고 뜨면?

A. 핸들러 정보 확인하기

Q. 로직상 문제 없는데 함수실행이 정상적으로 안된다?

A. CloudWatch 로그가 찍혀있으면 호출은 된것이므로 메모리랑 제한시간 체크해보기

Q.이것저것 해봤는데도 안된다?

A. 아주 만약의 케이스로 인프라팀에 API Gateway 체크 부탁드리기.

⇒ 나머지 케이스들은 다 console.log로 찾을 수 있음!

1. Lambda 개발 절차

  1. Lambda 함수 이름을 작성한다.
  • 호출될 URI가 Restful 하게 정의되기 쉽도록(동사가 아닌 명사이용), 명확한 이름을 작성한다.
  • 오른쪽 API Gateway URI 정의 참고

예시) MsTeams - OAuth 담당 함수명 : msTeams-api-OAuthAPI

MsTeams -  Meeting 생성 및 삭제 담당 함수 :  msTeams-api-mettingAPI
  • 실행역할은 기존 역할 사용한다.
  1. 만든 Lambda 함수명을 인프라담당자(현. 이진승 팀장님) 께 전달하여, (업무 생성 필요 + 메신저도 함께 드리면 좋음) Lambda(함수)와 APIGateway(호출 URL)를 연결한다.
  2. VS Code에서 node 환경에서 개발한뒤에 ZIP으로 묶어서 업로드한다.
    • 크기가 커서 인라인 편집기가 활성화 되지 않는 경우에는 아래 내용중 layer로 생성하기 참고.
  1. 개발 완료되면 호출될 URL을 JexConfig XML 호출 방식으로 변경한다. (API GateWay 운영 개발 호출 URL 다르기 때문에)
    • 참고: MSTeams와 GoogleCalendar 호출 URL의 도메인은 이미지 프로세싱 서비스 호출 URL도메인과 동일해서 새로 생성하지 않음.

2. Lambda Convention 및 꿀팁🍯

Convention

꿀팁🍯


3. 호출 실패시 CASE 분석

Q. index.js를 찾을 수 없다고 뜨면?

A. 핸들러 정보 확인하기

Q. 로직상 문제 없는데 함수실행이 정상적으로 안된다?

A. CloudWatch 로그가 찍혀있으면 호출은 된것이므로 메모리랑 제한시간 체크해보기

Q.이것저것 해봤는데도 안된다?

A. 아주 만약의 케이스로 인프라팀에 API Gateway 체크 부탁드리기.

⇒ 나머지 케이스들은 다 console.log로 찾을 수 있음!

1. Lambda 개발 절차

  1. Lambda 함수 이름을 작성한다.
  • 호출될 URI가 Restful 하게 정의되기 쉽도록(동사가 아닌 명사이용), 명확한 이름을 작성한다.
  • 오른쪽 API Gateway URI 정의 참고

 

예시) MsTeams - OAuth 담당 함수명 : msTeams-api-OAuthAPI

MsTeams -  Meeting 생성 및 삭제 담당 함수 :  msTeams-api-mettingAPI
  • 실행역할은 기존 역할 사용한다.
  1. 만든 Lambda 함수명을 인프라담당자(현. 이진승 팀장님) 께 전달하여, (업무 생성 필요 + 메신저도 함께 드리면 좋음) Lambda(함수)와 APIGateway(호출 URL)를 연결한다.
  2. VS Code에서 node 환경에서 개발한뒤에 ZIP으로 묶어서 업로드한다.
    • 크기가 커서 인라인 편집기가 활성화 되지 않는 경우에는 아래 내용중 layer로 생성하기 참고.
  1. 개발 완료되면 호출될 URL을 JexConfig XML 호출 방식으로 변경한다. (API GateWay 운영 개발 호출 URL 다르기 때문에)
    • 참고: MSTeams와 GoogleCalendar 호출 URL의 도메인은 이미지 프로세싱 서비스 호출 URL도메인과 동일해서 새로 생성하지 않음.

2. Lambda Convention 및 꿀팁🍯

Convention

꿀팁🍯

    • 각 Lambda 런타임에 대해 PATH 변수는 /opt디렉터리의 특정 폴더를 포함한다. layer.zip 파일 아카이브에 동일한 폴더 구조를 정의하면 함수 코드가 경로를 지정하지 않고도 계정 콘텐츠에 액세스할 수 있다.Lambda 작업시 공통 node module은 layer 생성 권장한다.(lambda 작성시 용량이 크면 인라인 코드 편집이 불가능하기 때문에 + 공통으로 사용하는 것들을 lib로 빼는 목적)

 

 

  • Lambda 함수에서 console.log를 활용해서 디버깅한 내용들을 CloudWatch 에서 볼 수 있다!
  • 메뉴경로 : CloudWatch > 로그 > 로그그룹

3. 호출 실패시 CASE 분석

Q. index.js를 찾을 수 없다고 뜨면?

A. 핸들러 정보 확인하기

 

Q. 로직상 문제 없는데 함수실행이 정상적으로 안된다?

A. CloudWatch 로그가 찍혀있으면 호출은 된것이므로 메모리랑 제한시간 체크해보기

 

Q.이것저것 해봤는데도 안된다?

A. 아주 만약의 케이스로 인프라팀에 API Gateway 체크 부탁드리기.

⇒ 나머지 케이스들은 다 console.log로 찾을 수 있음!