我在命令serverless deploy上遇到错误,我找不到有关此错误源的任何文档。它在我的本地机器上工作,这意味着我必须安装其他东西使它工作,但我不知道是什么
我试图建立在AWS的基础上
my serverless.yaml:
service: suqinn-python
app: suquinn-be
plugins:
- '@serverless/enterprise-plugin'
- serverless-pseudo-parameters
- serverless-custom-packaging-plugin
- serverless-python-requirements
package:
exclude:
- 'node_modules/**'
provider:
name: aws
runtime: python3.8
profile: ${opt:profile,"AlexisLefebvre"}
region: ${opt:region,"eu-west-2"}
stage: ${opt:stage,"dev"}
environment:
STAGE: ${self:provider.stage}
REGION: ${self:provider.region}
DYNAMODB_SECURITIES_TABLE: ${self:custom.DynamoDBSecuritiesTableName}
iamRoleStatements:
- Effect: 'Allow'
Action:
- dynamodb:PutItem
- dynamodb:Query
- dynamodb:Scan
- dynamodb:GetItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Resource:
- arn:aws:dynamodb:${self:provider.region}:#{AWS::AccountId}:table/${self:custom.DynamoDBTradesTableName}
- Effect: 'Allow'
Action:
- s3:GetObject
Resource:
- arn:aws:s3:::*
functions:
create:
handler: handler.create
environment:
STAGE: ${self:provider.stage}
events:
- http:
path: form
method: post
cors: true
get:
handler: handler.get
environment:
STAGE: ${self:provider.stage}
events:
- http:
path: form
method: get
cors: true
delete:
handler: handler.delete
environment:
STAGE: ${self:provider.stage}
events:
- http:
path: form
method: delete
cors: true
custom:
client: "kkk"
DynamoDBTradesTableName: ${self:custom.client}-trades-${self:provider.stage}
s3reportsName: ${self:custom.client}-reports-${self:provider.stage}
以及我的buildspec.yaml:
version: 0.2
#comment
phases:
install:
runtime-versions:
nodejs: 10
python: 3.8
commands:
- pip install pyjwt
- pip install pytz
- pip install pandas_market_calendars
- npm install serverless -g
- npm install serverless-pseudo-parameters
- npm install serverless-custom-packaging-plugin
- npm install serverless-python-requirements
- npm install @serverless/enterprise-plugin
build:
commands:
- serverless deploy
这似乎是来自自定义打包插件。删除插件可以解决这个问题,但是package.zip的大小会急剧膨胀,这也是一个问题。将serverless.yaml修改为:
不幸的是,仍然会产生相同的错误:
错误
错误:找不到模块'./lib/core' 位于Function.Module.\u resolveFilename(internal/modules/cjs/loader.js:636:15) at Function.Module._load(内部/modules/cjs/loader.js:562:25) at Module.require(内部/modules/cjs/loader.js:692:17) 根据需要(内部/modules/cjs/helpers.js:25:18) 反对。(/codebuild/output/src448056649/src/node_modules/archiver/index.js:8:16) at模块编译(内部/modules/cjs/loader.js:778:30) at Object.Module._extensions..js(internal/modules/cjs/loader.js:789:10) at Module.load(内部/modules/cjs/loader.js:653:32) 在tryModuleLoad(内部/modules/cjs/loader.js:593:12) at Function.Module._load(内部/modules/cjs/loader.js:585:3) at Module.require(内部/modules/cjs/loader.js:692:17) 根据需要(内部/modules/cjs/helpers.js:25:18) 反对。(/codebuild/output/src448056649/src/node_modules/serverless定制打包插件/lib/index.js:5:18) at模块编译(内部/modules/cjs/loader.js:778:30) at Object.Module._extensions..js(internal/modules/cjs/loader.js:789:10) at Module.load(内部/modules/cjs/loader.js:653:32) 在tryModuleLoad(内部/modules/cjs/loader.js:593:12) at Function.Module._load(内部/modules/cjs/loader.js:585:3) at Module.require(内部/modules/cjs/loader.js:692:17) 根据需要(内部/modules/cjs/helpers.js:25:18) 在requirereserviceplugin(/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:27:12) 位于pluginobject.modules.filter.map.name(/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:144:20) 在Array.map()处 位于PluginManager.resolveServicePlugins(/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:141:8) 在PluginManager.loadAllPlugins(/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:127:40) 在service.load.then(/usr/local/lib/node_modules/serverless/lib/serverless.js:88:39) 在tryCatcher(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/util.js:16:23) 在Promise.\u结算PromiseFromHandler(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/Promise.js:547:31) 在Promise._结算Promise(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:604:18) 在Promise._settlePromise0(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:649:10) 在Promise._结算Promises(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:729:18) 按承诺履行(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/Promise.js:673:18) 在Promise._结算Promise(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:617:21) 在Promise._settlePromise0(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:649:10) 在Promise._结算Promises(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:729:18) 按承诺履行(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/Promise.js:673:18) 在Promise.\u resolveCallback(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/Promise.js:466:57) 在Promise._settlePromiseFromHandler(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:559:17) 在Promise._结算Promise(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:604:18) 在Promise._settlePromise0(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:649:10) 按承诺。_结算建议(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/承诺.js:729:18) 按承诺履行(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/Promise.js:673:18) 在PromiseArray上解析(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/promise\u array.js:127:19) 在PromiseArray.实现了PromiseArray(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/promise\u array.js:145:14) 在Promise._结算Promise(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:609:26) 在Promise._settlePromise0(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:649:10) 在Promise._结算Promises(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:729:18) 按承诺履行(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/Promise.js:673:18) 在Promise.\u resolveCallback(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/Promise.js:466:57) 在Promise._settlePromiseFromHandler(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:559:17) 在Promise._结算Promise(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:604:18) 在Promise._settlePromise0(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:649:10) 在Promise._结算Promises(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:729:18) 按承诺履行(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/Promise.js:673:18) 在PropertiesPromiseArray.PromiseArray.\u resolve(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/promise\u array.js:127:19) 在PropertiesPromiseArray.实现了承诺(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/props.js:78:14) 在Promise._结算Promise(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:609:26) 在Promise._settlePromise0(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:649:10) 在Promise._结算Promises(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Promise.js:729:18) 在drainQueueStep(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/async.js:93:12) at_drainQueue(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:86:9) 在Async.\u drainQueues(/usr/local/lib/node\u modules/serverless/node\u modules/bluebird/js/release/Async.js:102:5) 在Immediate.Async.drainQueues[as _onImmediate](/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/Async.js:15:14) 运行回调时(timers.js:705:18) 在tryOnImmediate(timers.js:676:5) 在processImmediate(timers.js:658:5)
只需添加到
serverless.yml
更好的做法是只包含与特定lambda函数相关的文件夹,而不是所有项目文件
摘自: https://www.serverless.com/framework/docs/providers/aws/guide/serverless.yml/