ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Serverless + NestJS + MikroORM 조합 시 문제
    NestJs 2022. 3. 6. 17:45

    서론

    토이 프로젝트를 진행하면서 그동안 눈여겨보고 있던 MikroORM을 적용해봤다.

    회사에서는 TypeORM을 사용하고 있고, 크게 불편하지 않았지만,

    몇 가지 알려진 이슈가 오랫동안 해결되지 않는 점이 마음에 걸려 MikroORM을 한 번 익히고자 했다.

    Mongoose를 또 익히자니 귀찮고, TypeORM 문법과 비슷한것도 한 몫 했다.

    토이 프로젝트에 nestjs(monorepo), serverless-dotenv, swagger 기능을 삽질하며 적용하고,

    mikroORM까지 적용했다.

    본론

    serverless offline --stage=development는 동작이 잘되는데,
    serverless deploy --stage=development하면 packaging 단계에서 에러가 발생된다.

    ✖ Stack study-monorepo-serverless-development failed to deploy (9s)
    Environment: darwin, node 14.19.0, framework 3.7.1, plugin 6.1.5, SDK 4.3.2
    Credentials: Local, "default" profile
    Docs:        docs.serverless.com
    Support:     forum.serverless.com
    Bugs:        github.com/serverless/serverless/issues
    
    Error:
    Error: Parsing file monorepo-test/node_modules/fast-glob/out/readers/stream.js: Unexpected token (16:10)
        at Deps.parseDeps (monorepo-test/node_modules/module-deps/index.js:519:15)
        at getDeps (monorepo-test/node_modules/module-deps/index.js:447:44)
        at monorepo-test/node_modules/module-deps/index.js:430:38
        at ConcatStream.<anonymous> (monorepo-test/node_modules/concat-stream/index.js:37:43)
        at ConcatStream.emit (events.js:412:35)
        at ConcatStream.emit (domain.js:475:12)
        at finishMaybe (monorepo-test/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js:630:14)
        at endWritable (monorepo-test/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js:638:3)
        at ConcatStream.Writable.end (monorepo-test/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js:594:41)
        at DuplexWrapper.onend (monorepo-test/node_modules/duplexer2/node_modules/readable-stream/lib/_stream_readable.js:577:10)
        at Object.onceWrapper (events.js:519:28)
        at DuplexWrapper.emit (events.js:412:35)
        at DuplexWrapper.emit (domain.js:475:12)
        at endReadableNT (monorepo-test/node_modules/duplexer2/node_modules/readable-stream/lib/_stream_readable.js:1010:12)
        at processTicksAndRejections (internal/process/task_queues.js:82:21)
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! monorepo-test@0.0.1 start:deploy: `rm -rf .build && nest build && sls deploy --stage=development`
    npm ERR! Exit status 1
    npm ERR! 
    npm ERR! Failed at the monorepo-test@0.0.1 start:deploy script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

    에러 스택은 ORM을 가리키진 않는다. 하지만 mikroORM의 package.json에서 globby 패키지를 사용하고 있다.

    파일 참조할 때 경로/**와 같은 기능을 사용할 수 있게 한다고 한다.

    결론

    MikroORM에 이슈를 등록하고 대기 중이다.
    해결안되면 mongoose로 넘어가려고 한다.
    지원 안해준다고 한다.

    aws-lambda-container 사용

    -> warm up 시 6초 정도 소요되긴 함.

    -> 로컬에서 사용할 땐 main.ts로, 배포 시엔 lambda 함수로 돌아가게끔 코드 수정. 다른 플러그인 사용하지 않음

Designed by Tistory.