AWS 를 사용한 서버리스 아키텍쳐 적용기(삽질기) (2) - 람다함수 2
1. 환경변수와 태그
람다에서는 환경 변수와 태그를 구성할 수 있습니다.
환경변수는 말 그대로 환경변수 입니다. 코드와 상관없이 함수 코드와 라이브러리에 설정을 동적으로 전달할 수 있게끔 만들어줍니다.
Node의 process.env 와 같다고 보면 됩니다. 예를 들어 api endpoint url, api 키 값 등 변할 수 있는 것들을 넣어서 사용할 수 있습니다.
(도커가 '짜잔!' 하고 뜬 이유? 어디서든 환경 설정할 필요없이 도커 이미지만 있으면 바로 사용할 수 있기 때문입니다.)
환경변수는 그러한 기능을 한다고 보면 됩니다. API 바꾸고 키 바꾸고 로컬 저장 장소등을 바꾸려고 할 때마다 코드를 수정하려면 너~무 귀찮고 시간 낭비가 생깁니다. 하지만 환경변수는 그때그때 값만 바꿔주면 된다는 점에서 훨씬 편리합니다.
또한 암호화 기능도 있어서 API 키를 숨기거나 할 수 있지만 여기서는 다루지 않겠습니다.
태그는 간단하게 해시태그라고 생각해도 무방합니다. 람다 함수를 많이 사용할 때 재활용하기 유용합니다.
예를 들어, 결제 모듈을 여기저기 달아서 사용하고 싶다면 결제 관련된 함수들에 동일한 태그를 지정해놓으면
검색해서 쉽게 가져다 쓸 수 있습니다.
위와 같이 사용하면 된다.
또한 아래와 같이 기본적으로 제공되는 환경 변수도 있어서 잘 사용하면 편리할 것 같습니다.

2. 실행 역할과 기본 설정
실행 역할에서는 함수에 대한 권한을 정의할 수 있습니다. 아직 여기를 건드리긴 너무 어설프기 때문에 패스..
기본 설정같은 경우는 메모리와 제한 시간 설정해줄 수 있습니다. 당연하지만 메모리가 많이 필요한 작업을 함수에서 처리하면 그에 맞게 메모리를 설정해줘야 됩니다. 제한 시간은 사용자가 함수에 접근할 수 있는 시간.
람다 함수의 경우 사용하는 만큼 과금이 되는 방식이기 때문에 두 요소 모두 과금과 직접적인 관련이 있습니다.
적절히 잘 설계하고 사용해야 된다는 말!!
3. 나머지 (네트워크, 디버깅, 동시성 등)
네트워크의 경우 VPC를 설정해줄 수 있습니다. 접근을 제한한 DB등의 AWS 서비스가 있다면 VPC를 통해 접근해서 처리할 수 있습니다.
디버깅 및 오류 처리는 그냥 설명 그대로... 별거없음.
동시성은 람다함수에 동시에 접근할 수 있는 횟수입니다. 설정된 1000번 보다 많은 회수의 접근이 필요할 때는 (ex. 특수 이벤트) 그냥 늘려주면 됩니다.
이렇게 모든 과정을 끝마치면 람다 함수를 저장하여 사용할 수 있습니다!!
4. 테스트
아래와 같이 테스트 코드를 작성해서 테스트를 할 수 있습니다.
json 형태로 테스트 이벤트 구성을 해보자! 아래와 같이 코드를 작성해봅니다.
위와 같은 과정을 마치고 나서 저장을 누르면 작성한 테스트 이벤트가 저장됩니다.
그 후 테스트 버튼을 클릭해주면...
이런식으로 실행 결과를 확인할 수 있습니다.
여러가지 정보가 있는데 대충 여기 나오는 정보들을 참고해서 설정 등을 다시 조정한 뒤에 함수를 저장해주면 될듯!! (메모리, 실행시간 등)
물론 위와 같이 하면 테스트 코드를 작성한 의미가 없기에 함수 코드를 변형해서 다시 테스트를 해보겠습니다!

코드에 event를 추가!!
결과는...
위와 같이 함수가 반환한 response 안에 테스트에서 설정한 key와 value값을 결과에서 확인할 수 있습니다.
조금 더 재미있게 테스트를 해보자 !
함수를 수정해서 랜덤으로 숫자를 생성해서 해당 위치 키 값을 넣어서 결과를 출력해 봤습니다.
미친 개발자....ㅋㅋㅋㅋ 기분 묘하네 ^_^
아무튼 이런식으로 해서 기본적인 사용법을 확인할 수 있습니다.
외부에서도 함수를 호출하면 되는데 다음 글에서 해보겠습니다!
.
.
.
.
.
ps. 계속 쓸 수 있을까... 블로그만 쓰면 넘나 귀찮아 진다...ㅠ