0

我有了这种结构的无服务器的NodeJS项目:无服务器不包括我node_modules

-node_modules 
-package.json 
-serverless.yml 
-funcitons 
    -medium 
    -mediumHandler.js 

我serverless.yml:

service: googleAnalytic 

    provider: 
     name: aws 
     runtime: nodejs6.10 

     stage: dev 
     region: us-east-1 

    package: 
     include: 
     - node_modules/** 

     functions: 
      mediumHandler: 
      handler: functions/medium/mediumHandler.mediumHandler 
      events: 

       - schedule: 
       name: MediumSourceData 
       description: 'Captures data between set dates' 
       rate: rate(2 minutes) 

      - cloudwatchEvent: 
       event: 
       source: 
        - "Lambda" 
       detail-type: 
        - "" 
      - cloudwatchLog: '/aws/lambda/mediumHandler' 

我SLS信息显示:

Service Information 
service: googleAnalytic 
stage: dev 
region: us-east-1 
stack: googleAnalytic-dev 
api keys: 
    None 
endpoints: 
    None 
functions: 
    mediumHandler: googleAnalytic-dev-mediumHandler 

当我运行sls时:

serverless invoke local -f mediumHandler 

它的工作原理和我的脚本中包含了googleapis和aws-sdk的工作。但是当我部署时,这些功能会被跳过并显示没有错误。

+0

您从哪里得到错误?在部署过程中还是在调用过程中?您是否看到“node_modules” '.serverless'目录中的'.zip'文件? – dashmug

+0

没有错误,我t只是跳过我写的使用所需模块的所有脚本 – noor

+0

这可能是因为你的'serverless.yml'(如果你上面发布的是内部内容)有不正确的缩进。你能正确发布吗? – dashmug

回答

0

调试时serverless的包装过程中,使用sls package(或sls deploy --noDeploy(旧版本),你会得到一个.serverless目录,你可以检查,看看有什么部署包里面。

从那里,你可以查看是否包含node_modules,并且相应地更改serverless.yml,而无需每次进行更改都需要部署。

+0

事实证明它确实包含了node_modules,但是你知道为什么它不会运行我在node_modules中添加的任何库吗 – noor

+0

本地调用时,你的函数是否工作? “sls info”告诉你什么? – dashmug

+0

是的,当我使用'sls invoke local -f ....'时它在本地工作,但是当我部署它时不起作用。我的sls提到了我的功能(我注释了我的一个功能): 功能: mediumHandler:googleAnalytic-dev-mediumHandler – noor