6

나는 nightmare js를 사용하여 파일 다운로드를 자동화하고있었습니다. 그래서 이틀 뒤 우리는이 도구를 aws lambda로 옮기기로 결정했고 나는 nightmare-lambda-tutorial을 사용하여 악몽으로 달리는 aws 물건을 얻을 수 있었지만 나의 lambda는 하나의 악몽 모듈을 사용했습니다 nightmare-download-manager이 다운로드 관리자를 추가하면 lambda가 'MODULE_NOT_FOUND' 메시지로 실패하고, npm install을 사용하여 패키지를 설치했지만 node_modules 내부에서 폴더와 파일을 찾습니다. aws lambda의 nightmare-download-manager

그래서 디버깅, 나는 오류를 발견하지 모듈의 원인이됩니다, 심지어 코드의 초기 몇 줄, 람다 예를 들어 같은 실패

var binaryPack = require('./lib/bootstrap/nightmare-lambda-pack'), 
Xvfb = require('./lib/bootstrap/xvfb'), 
Nightmare = require('nightmare'); 

require('nightmare-download-manager')(Nightmare); 

4 호선을 발견했다. 어떻게하면이 문제를 해결할 수 있을까요?

+0

전체 오류 메시지를 게시하고 'MODULE_NOT_FOUND'(이)라는 위치에 스택 추적을 게시 할 수 있습니까? – dashmug

+0

다음과 같이 표시됩니다. https://stackoverflow.com/questions/36719236/nightmare-js-not-working – dashmug

답변

0

은 정말 하나 같이 소리 :

  • 새 종속성/업로드 제대로 배포하지 않은 당신의 배포 .zip, 또는
  • 새 우편으로 포장되지 않았다.

이 특정 패키지가 람다 환경에서 문제를 일으킬만한 이유가 있다고 생각하지 않습니다. 나는 linked to tutorial을 따라 갔고, 람다를 배치하고 테스트했으며, nightmare-download-manager 종속성을 추가했다. 은 다시 패키징되고을 재배포했다. 모든 것이 예상대로 작동한다.


배포 확인

종속성을 확인하는 것은 여전히 ​​문제가있는 경우, 당신은 의존성이 람다 환경에 존재 확인하려는 것, 작업 공간에와 배포 zip 파일에 존재 한 .

나는 AWS 콘솔의 존재와 node_modules의 내용을 확인 할 수있는 방법을 보지 못했다,하지만 당신은 do so with the CLI 할 수 있습니다 응답에 포함

aws lambda get-function --function-name <function-name> 

은 (10 분 좋은) 링크를 그 코드가 배포 된 zip 파일을 다운로드 할 수 있습니다. 이 zip을 다운로드하고 예상 파일이 들어있는 node_modules/nightmare-download-manager이 그 안에 있는지 확인하십시오.

누락 된 경우 패키지 또는 패키지 업로드/배포에 문제가 발생했습니다. 재 포장 (lib, node_modulesindex.js)을 작성하고 AWS 콘솔을 사용하여 재배포하십시오.

거기에 있다고 가정하면 문제의 require 문이 노드 4.3과 노드 6.10 모두에서 잘 작동합니다.

+0

-package.json -index.js -lib \t | \t | __ 부트 스트랩 \t | \t | \t | \t | _nightmare-lambda-pack.js \t | \t | _xvfb.js \t | \t | \t | __node_modules \t \t | \t \t 는 | _nightmare \t \t는 | _nightmare 다운로드 매니저 \t \t | _aws-SDK \t \t는 | _mime | \t \t을 _fs. 방금 다운로드하여 함수를 확인하고 구조가 위의 것과 같게 보인다. – Sam