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