我在无服务器部署命令中遇到错误,并且在此错误的源头上找不到任何文档。它可以在我的本地计算机上工作,这意味着我必须安装其他东西才能使它工作,但我无法弄清楚是什么。
我正在尝试在AWS上构建。
我的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
答案 0 :(得分:0)
只需添加到您的serverless.yml
package: # Optional deployment packaging configuration
include: # Specify the directories and files which should be included in the deployment package
- ./**
exclude: # Specify the directories and files which should be excluded in the deployment package
- 'node_modules/**'
更好的做法是仅包含与此特定lambda功能相关的文件夹,而不是所有项目文件
来自: https://www.serverless.com/framework/docs/providers/aws/guide/serverless.yml/
答案 1 :(得分:0)
这似乎来自custom-packaging-plugin。删除插件可以解决该问题,但是package.zip的大小会爆炸,这也是一个问题。将serverless.yaml修改为:
service: suqinn-python
app: suquinn-be
plugins:
- '@serverless/enterprise-plugin'
- serverless-pseudo-parameters
- serverless-custom-packaging-plugin
- serverless-python-requirements
package:
include:
- '*'
exclude:
- 'node_modules/**'
不幸的是仍然产生相同的错误:
错误---------------------------------------------- ----
错误:找不到模块“ ./lib/core” 在Function.Module._resolveFilename(内部/模块/cjs/loader.js:636:15) 在Function.Module._load(内部/模块/cjs/loader.js:562:25) 在Module.require(internal / modules / cjs / loader.js:692:17) 在要求时(内部/模块/cjs/helpers.js:25:18) 在对象。 (/codebuild/output/src448056649/src/node_modules/archiver/index.js:8:16) 在Module._compile(内部/模块/cjs/loader.js:778:30) 在Object.Module._extensions..js(内部/模块/cjs/loader.js:789:10) 在Module.load(internal / modules / cjs / loader.js:653:32) 在tryModuleLoad(内部/模块/cjs/loader.js:593:12) 在Function.Module._load(内部/模块/cjs/loader.js:585:3) 在Module.require(internal / modules / cjs / loader.js:692:17) 在要求时(内部/模块/cjs/helpers.js:25:18) 在对象。 (/codebuild/output/src448056649/src/node_modules/serverless-custom-packaging-plugin/lib/index.js:5:18) 在Module._compile(内部/模块/cjs/loader.js:778:30) 在Object.Module._extensions..js(内部/模块/cjs/loader.js:789:10) 在Module.load(internal / modules / cjs / loader.js:653:32) 在tryModuleLoad(内部/模块/cjs/loader.js:593:12) 在Function.Module._load(内部/模块/cjs/loader.js:585:3) 在Module.require(internal / modules / cjs / loader.js:692:17) 在要求时(内部/模块/cjs/helpers.js:25:18) 在requireServicePlugin(/usr/local/lib/node_modules/serverless/lib/classes/PluginManager.js:27:12) 在pluginsObject.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._settlePromiseFromHandler(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:547:31) 在Promise._settlePromise(/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._settlePromises(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:729:18) 在Promise._fulfill(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:673:18) 在Promise._settlePromise(/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._settlePromises(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:729:18) 在Promise._fulfill(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:673:18) 在Promise._resolveCallback(/usr/local/lib/node_modules/serverless/node_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._settlePromise(/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._settlePromises(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:729:18) 在Promise._fulfill(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:673:18) 在PromiseArray._resolve(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise_array.js:127:19) 在PromiseArray._promiseFulfilled(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise_array.js:145:14) 在Promise._settlePromise(/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._settlePromises(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:729:18) 在Promise._fulfill(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:673:18) 在Promise._resolveCallback(/usr/local/lib/node_modules/serverless/node_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._settlePromise(/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._settlePromises(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:729:18) 在Promise._fulfill(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:673:18) 在PropertiesPromiseArray.PromiseArray._resolve(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise_array.js:127:19) 在PropertiesPromiseArray._promiseFulfilled(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/props.js:78:14) 在Promise._settlePromise(/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._settlePromises(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:729:18) 在_drainQueueStep(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:93:12) 在_drainQueue(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:86:9) 在Async._drainQueues(/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:102:5) 在Instant.Async.drainQueues处[作为_onImmediate](/usr/local/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:15:14) 在runCallback(timers.js:705:18) 在tryOnImmediate(timers.js:676:5) 在processImmediate(timers.js:658:5)