Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Doc] Lambda function local test #1

Open
tastekim opened this issue Feb 25, 2023 · 0 comments
Open

[Doc] Lambda function local test #1

tastekim opened this issue Feb 25, 2023 · 0 comments
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@tastekim
Copy link
Contributor

Local test vs. Lambda test

람다 함수를 모듈화해서 로컬 서버를 연 후에 테스트를 진행했었는데 로컬에서는 잘 되다가 람다로 띄우면 생각대로 동작하지 않는 부분이 발생했다.
람다 핸들러에 쿼리를 넘겨야 했는데 aws-lambda 라이브러리에 이미 핸들러에서 받는 매개변수 타입들이 지정되어있어서 로컬 서버의 request로 받은 값을 넘기기가 어려워 핸들러에 3번째 매개변수를 따로 추가해서 넘겼더니 잘 돌아갔다. 하지만 람다에 띄워지면 3번째 매개변수를 아예 무시해버린다.

또 람다의 매개변수 중 event 라는 곳에 queryStringParameters 라는 속성에 쿼리문이 들어가기때문에 로컬에서 임의로 저 안에 username을 넣어서 보내면 타입때문에 없는 속성을 꺼낼 수 없다고 하고 임의로 event 타입을 따로 만들어 지정하면 람다에 띄워지면서 작동이 안된다.

solution

const { username } = event.queryStringParameters || {};

fallback을 이용해서 쿼리를 받았을 때는 구조분해할당이 되고 없을 때는 빈객체로 구조분해할당을 해서 undefined를 넣게 된다.
옵셔널체이닝으로 해보려 했는데 코드상에서는 username 이라는 값이 인터페이스에 정의되어있지 않기 때문에 처음부터 에러를 뱉어내고 lambda에서 사용하는 타입외에 임의로 만든 타입으로 event를 정의하면 lambda에서 안돌아간다.
다른 옵션은 아직 못찾아봤다.

@tastekim tastekim added the documentation Improvements or additions to documentation label Feb 25, 2023
@tastekim tastekim self-assigned this Feb 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

1 participant