无服务器不包括我的node_modules

时间:2017-09-26 03:02:26

标签: node.js amazon-web-services serverless-framework serverless

我有一个具有这种结构的nodejs无服务器项目:

-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。但是当我部署时,这些函数被跳过并且没有显示错误。

1 个答案:

答案 0 :(得分:1)

调试serverless的打包过程时,请使用sls package(或sls deploy --noDeploy(对于旧版本)。您将获得一个.serverless目录,您可以检查看看部署包里面有什么。

从那里,您可以看到是否包含node_modules并相应地更改serverless.yml,而无需在每次更改时进行部署。