저번 글에서는 serverless framework의 개발환경 세팅 방법에 대해 포스팅했습니다.
Serverless Framework 설치, 사용방법
하지만 개발을 할 때 항상 serverless deploy를 하면서 배포, 테스트, 수정을 하면 시간이 오래 걸립니다. 따라서 개발시간 단축을 위해서 local에서 동작하도록 하는 것이 필요합니다.
이를 위해서 serverless framework에서도 local로 개발환경을 세팅할 수 있도록 되어있습니다.
저번 포스팅 때 세팅한 개발환경은 다 되어있다고 생각하고 진행하겠습니다.
npm install serverless-offline --save-dev
을 통해서 설치를 진행해줍니다.
그리고 serverless.yml 파일에
plugins:
- serverless-offline
위 내용을 추가해줍니다.
serverless --verbose
이 명령어를 통해서 성공적으로 설치되었는지 확인해 줍니다.
serverless offline
또는 sls offline
을 입력하여 project를 offline에서 실행시킬수 있습니다. (powershell은 sls가 안됩니다.)
custom:
serverless-offline:
httpsProtocol: "dev-certs"
httpPort: 4000
stageVariables:
foo: "dev"
serverless.yml파일에 추가해서 이런식으로 serverless에 대한 option들을 수정할 수 있습니다.
custom:
serverless-offline:
useDocker: true
serverless offline환경에서 Docker layer를 사용하고 싶으면 serverless.yml 파일에서 useDocker: true로 줍니다.
AWS 역할에 권한을 주려면 다음의 policy를 주면 됩니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:GetLayerVersion", "Resource": "arn:aws:lambda:*:*:layer:*:*" } ] }
이 외에도 JWT authorizers, API gateway, Env값들에 대해서는 https://www.serverless.com/plugins/serverless-offline 다음의 공식문서에 나와있습니다.