我有一个具有以下结构的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的工作)都在其中。但是,当我部署时,这些功能将被跳过并且不会显示任何错误。
最佳答案
在调试serverless
的打包过程时,请使用sls package
(或sls deploy --noDeploy
(对于旧版本)。您将获得一个.serverless
目录,您可以检查该目录以查看部署软件包中的内容。
从那里,您可以查看是否包含node_modules
并相应地更改serverless.yml
,而无需在每次更改时都进行部署。